• Т transform.right не работает на спрайты созданные спавном, в чем причина?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    ох, здраствуйте
    давайте начнем разгребать)

    что понимается под "пушка ведет себя неестественно"?
    из приведенного "обрывка" кода не понятно в чем разница у вас между спавном и существующим в сцене спраитом.
    вообще не ясно как "пушка" выбирает цель, есть подозрение что вообще ни как.

    target в скрипте пушки у вас как подставляется?? он один раз и навсегда ссылкой на префаб??

    что вы пытаетесь сделать вот этой строкой ??
    transform.right = target.position - transform.position;

    вы же понимаете что (target.position - transform.position ) это вектор направления в сторону цели?
    вы так вращаете объект в сторону цели??

    про "пушка чтоб знала о всех врагах", это уже от архитектуры приложения. Как по мне при спавне вам бы запоминать созданный объект и складывать все эти объекты в список.

    Ну и последнее, разбивать бы вам это дело на кучу мелких вопросов, а то вы получается хотите целый урок обучающий в одном вопросе)
    Ответ написан
  • Gamedev - боль?

    MrMureno
    @MrMureno
    VR for all
    Очень условно так говорят ребята, которым видать не очень нравиться делать то, что делают))

    В общем то тенденция такая что - работа творческая, напряжная, но при этом подразумевается что вы пришли сюда сами с удовольствием все делаете и платят вам меньше..эм как бы пояснить..меньше среднего для специалиста..подобного уровня

    скажем так изучив так же много информации и став разработчиком на Jave..делать серверные решения для крупных компаний - вы получали больше, возможно меньше вкладывая души и тд (из за чего от провала вам ни холодно ни жарко)

    как то так, в общих чертах.
    а вообще всё боль))
    Ответ написан
    3 комментария
  • Стрельба в 2D из пушки на клик как сделать?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Ура. вы аккуратно все выложили и это можно потестить.
    смотрите у вас по сути в общем то все верно и отлично , кроме момента применения силы

    попробуйте применить

    myRigidbody.AddForce(transform.right * moveSpeed, ForceMode2D.Impulse);

    у вас сейчас кидает по сути вправо от текущего направления объекта потому что применяете AddRelativeForce .

    А вам надо глобальный вектор силы применить, посчитав его на основе текущего направления объекта.
    transform.right , transform.fwd и transform.up как раз и содержат этот глобальный вектор "куда направлен сейчас объект", по какой либо из осей)
    выберите нужную просто. для 2D вроде как раз красная ось transform.right
    Ответ написан
  • Как сравнить координаты?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    А теперь по делу

    так то у вас же есть информация о КОЛЛИЗИИ
    посмотрите документацию
    https://docs.unity3d.com/ScriptReference/Collision.html
    https://docs.unity3d.com/ScriptReference/ContactPo...

    физический движок предоставляет информацию о точках соприкосновения и о нормали. собственно можно узнать с какой стороны коснулось

    в вашем случае конечно проще узнать просто по Y ,кто выше , а кто ниже, но вообще знать такое - пригодится.
    Ответ написан
    1 комментарий
  • Unity3D как реализовать движение с помощью акселерометра?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://docs.unity3d.com/ScriptReference/Input-acc...
    для начала документация.
    потом еще вы в курсе что Input.acceleration меряется просто в пределе от -N до N.?
    и вот представим у вас в Input.acceleration меняется от -1 до 1. и как вы собираетесь дальше уйти??

    на основе Input.acceleration - вам надо выбрать вектор/направление куда двигаться.
    а само движение уже..что нибудь вроде

    transform.Translate(dir * speed); как в документации

    если вы осознали все, то поймете что у вас по сути вертится объект вокруг точки в пределе от -N до N.
    (тоесть вы никак не смещаете относительно текущей позиции, а высчитываете на основе акселерометра просто глобальную позицию..надеюсь внятно пояснил)))
    и Speed - банально увеличивает радиус только.
    Ответ написан
  • Какой есть эффективный и разумный способ парсинга JSON?

    MrMureno
    @MrMureno
    VR for all
    у себя обычно использовали https://lbv.github.io/litjson/
    не сказать что самый быстрый и эффективный. но достаточно хорош, и у нас в Unity3D проектах важно что под iOS с её AOT компиляцией отлично все прокатывало))

    ах да и конечно же всегда есть еще
    https://www.newtonsoft.com/json
    если нужно поновее и чтоб умело прям почти все что угодно в json переварить) да и вроде как один из самых популярных.
    Ответ написан
    Комментировать
  • Как вызвать переменную или метод другого класса через строку?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    ответьте почему у вас множество классов, а не один класс Country, на основе которого сделали себе объект для России и Италии и так далее?
    у них у всех будет одинаковые переменные..
    public class Country 
    {
    public string Name;
    //и другие нужные поля под страну
    }
    
    ///////////
    //создаем себе объект класса
    Country  russia = new Country();
    russia.Name = "Russia";
    //////////
    
    //и вот собственно во все инфо и подобное отдаете объект класса Country 
    //в котором все содержиться
    void Info(Country currentCountry){
    
    Text.text = currentCountry.Name;
    
    }


    конечно еще есть struct вместо класса. и про наследование можно поговорить если будет что то уникальное для каких-то стран.
    но вам еще видимо рано такое..

    но в общем то, если сильно все упростить, вы просто не использовали ООП - создав на каждую страну свой собственный класс.
    Ответ написан
    3 комментария
  • ScreenCapture.CaptureScreenshot Или Application.CaptureScreenshot не могу разобраться?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Для начала, оба ваших метода делают одно и тоже, это и есть один и тот же метод, только
    Application.CaptureScreenshot - устаревший, его перенести из Application, и его лучше не использовать.

    "показывать полученный скриншот в отдельном окошке UI " - вот эту часть на компе вы сделали??
    если да, то ничего сложного сделать тоже самое на мобилках
    просто используйте
    https://docs.unity3d.com/ScriptReference/Applicati... (путь к папке для приложения, не надо будет получать права записи и точно работает на iOS и Андроид)

    ну а если вывести скриншок в игре - проблема..
    то что ж вам по сути
    - создавать в папке (сами создали, обозвали, запомнили) скриншоты
    - искать их в этой папке.
    - по известному пути подтягивать скриншот текстурой в материал окошка

    тут уж простите каждый из пунктов - гуглить и выяснять и реализовывать - это уже обучение и за вами остается.
    ( а уж всякие, закончилось место, удалять старые, сохранять в выбранное место (на анроиде только прокатит, ай ос же закрытая и не даст пихать просто куда попало) - это уже вообще отдельныу темы)
    Ответ написан
    Комментировать
  • Почему при столкновении персонажа с препятствием происходит отскок?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://docs.unity3d.com/ScriptReference/Rigidbody...

    расписано же как работает, и что в 2d более низкий лимит..у вас банально коллайдер персонажа влезает в коллайдер стены, и потом физикой выталкивается.

    как они говорят или делайте движение, на небольшие расстояния.
    или все же двигайте объект физический - прикладывая к нему силу, а не меняя положение.
    Ответ написан
  • Разработка мобильных приложений на C#?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Если вам именно приложения - то Xamarin отличный выбор.
    Если вдруг игры - и вообще что то с графикой, а не UI - то удобнее будет Unity.

    Материалов что по первому, что по второму - много. а вот русскоязычного - привыкайте что всегда будет не хватать. без англ на уровне чтения документации - почти бесполезное дело искать что-то посложнее чем "как сделать нажатие на кнопку"

    Про UI систему и там, и там есть. Подробнее особо не раскажешь, там уже конкретно смотреть надо как оно в Xamarin и Unity сделано.
    Ответ написан
    3 комментария
  • Как поднять объект на определенную высоту в Unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Вариантов масса, от навесить анимацию или запустить коронтину, до использовать твиннер или Lerp между двумя запомненными позициями)

    тут больше вопрос в том где это происходит (по методу или на апдеите обязательно как у вас). будет ли там физика. нужно ли когда поднялась до конца дверь - событие тригерить?
    Ответ написан
  • Как реализовать возможность нажатие кнопки только администратору?

    MrMureno
    @MrMureno
    VR for all
    https://stackoverflow.com/questions/5953240/c-shar...
    ну и так , в дополнение к комментарию, первая же ссылка в гугле.
    уж как при наличии булевского флага -"запущенно от имени админа" - надеюсь справитесь с блокировкой клика (или не отображать кнопку, или еще что там в голову придет)
    Ответ написан
    Комментировать
  • Какая программа нужна для создания 2D объекта?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    вы про векторную графику что ли? в юнити нет её поддержки.
    https://habrahabr.ru/company/microsoft/blog/326262/
    прочитайте к примеру эту статью.
    По сути вам просто рисовать разрешением побольше, чтоб не было заметно, экран все равно в пикселях , хоть вы там почти идеально круглую плоскость сделаете из полигончиков..
    Ответ написан
  • Нормальная ли конфигурация ПК и какую видеокарту подобрать?

    MrMureno
    @MrMureno
    VR for all
    Уже конечно новые процы восьмитысячной серии появляются...
    И ничего не написано про блок питания, модель материнской платы, частоту ОЗУ.

    Про ssd - скорее всего вам что то про TRIM и поддержку его на этапе появления первых твердотельников попадалось. сейчас ssd - для разработки по сути обязательно для комфорта и сохранения нервов.

    а по компу. без видео карты. и не пойми с какими комплектующими..за 46 тысяч..можно наверное и самому собрать

    https://www.dns-shop.ru/conf/df6e837aba8cd65c/
    по сути тоже самое. блок на 500, можно взять другой корпус с блоком на 600 если вдруг карту будете из по мощнее брать типо 1080 в будущем.
    а так за 56 тысяч получаете 7700к вместо 7700 и материнку на z270 чипсете которая разгон поддерживает. и лишние 200 - 300 мегагерц накинуть можно будет смело.
    очень по быстрому собрано. можно и куллер поставить другой или водянку.

    а по итогу если за 46 вас устраивает и в комплекте там блок питания на 500 и вы себе видеокарту 1060 или 1070 вставите - то на здоровье. в общем то нормально.
    Ответ написан
  • Можно ли в анимации Unity использовать localPosition?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Обычно в таком случае просто использую дополнительный родительский объект.
    над шариком вешается какой-нибудь AnimationRoot
    и анимация висит на этом вот AnimationRoot. под которым child есть который собственно и анимируется.
    и все что не "прикрепишь" ребенком в иерархии к этому child - будет корректно анимироваться в локальных координатах
    как то так. это если по простому и быстро)
    Ответ написан
    2 комментария
  • Где Ошибка в коде (ввод в Unity)?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Changename у вас вполне себе может быть без параметра.
    Как вы указали у себя на скрине красными стрелочками - это не из текстового поля текст возможность передать, а методу что-то подпихнуть из Editor (никак не связанно с вводом)

    вам в скрипте надо где то указать или получить ссылку на
    InputField

    using UnityEngine;
    using UnityEngine.UI;
    using System.Collections;
    using System;
    using System.Collections.Generic;
    
    public class Chose : MonoBehaviour {
    public InputField nameField;
      public int i=0;
      public string [] m = new string[100];
      public List <string> films = new List<string>(100);
      public void Changename()
      {
        string newName = nameField.text;
        films.Add(newName );
        i += 1;
        Debug.Log("Имя" + i +", название фильма - " + newName );
      }
      public void WriteAllOfThem()
      {
        foreach (string p in films)
        {
          Debug.Log (p);
        }
      }
    }
    class Film
    {
      public string Name { get; set; } 
    }


    только в инспекторе не забудьте указать ссылку на это текстовое поле.
    и так к слову по этой ссылке мы можете и подставлять текст в это поле и формат менять, да и вообще как без ссылочки на элемент вы хотели с ним работать?))
    Ответ написан
    4 комментария
  • Помощь с аудио в unity5?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    AudioSource audioSource;

    сделайте public и назначте в инспекторе ссылку..

    audioSource.PlayOneShot у вас по сути вызывает
    this.GetComponent<AudioSource>().PlayOneShot
    а по скринам видно, что на объекте, на котором висит walkscript - нет аудиосорса.
    ну или повесьте его на объект "mario right"..как собственно в ошибке и написанно.

    Update
    И для уточнения и понимания
    Вы поидее малость путаете AudioSource и AudioClip
    AudioClip - просто ссылка на сам аудио фаил.
    AudioSource - по сути "плеер", которому можно "скормить" аудиофаил и набор настроек для воспроизведения.
    и вот собственно плеера на mario right и нету.
    он есть на отдельном JumpSound - но вы неправильно ищите в walkscript Start() или забыли на него ссылку сделать.
    Ответ написан
  • Unity C# - Как, после получения урона персонажем, дать ему неуязвимость?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Update()
    {
      timer -=Time.deltaTime;
      if(timer<=0)
      {
         godMode = false;
      }
      else
      {
           godMode  = true;
      }
    }


    в момент как захотели сделать неуязвимым, увеличили таймер на N. пока не станет равным нулю - будет флаг неуязвимости.
    Ну а как по флагу сделать чтоб урон не домажил, думаю вы уже разберетесь)
    еще вариант просто установить флаг и через Invoke - выключить его через 2 секунды.
    // где то в момент получения урона и включения неуязвимости
    godMode = true;
    Invoke("OffGodMode",2f);
     ////
    
    void OffGodMode()
    {
      godMode  = false;
    }
    Ответ написан
    Комментировать
  • Как избавить от шума при отключении микрофона?

    MrMureno
    @MrMureno
    VR for all
    То есть у вас гарнитура рассчитанная на два трехпиновых разъема, некорректно работает при подключении в один четырехпиновый??
    А что вас удивляет?
    выключайте микрофон программно.переключатель банально небось замыкает микрофон на землю и начинает фонить в четырехпиновом (через переходник это ваш).
    Ответ написан
  • Как узнать что объекты пересекаются?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Если с англ все не плохо. то прочитайте еще вот это
    https://docs.unity3d.com/Manual/CollidersOverview.html
    особо важные вам там будут таблички "что с чем пересекается"

    А так, на движущихся объектах должны быть какие то коллайдеры.
    тогда в скрипте вы сможете использовать
    https://docs.unity3d.com/ScriptReference/Collider....
    и подобные ему OnCollisionExit , OnCollisionStay
    или де используйте тригеры, если просто узнать про пересечение, аля "коснулись друг друга"
    с коллизиями же там внутри побольше инфы будет, к примеру точки пересечения и подобное.
    https://docs.unity3d.com/ScriptReference/Collision.html
    Ответ написан
    Комментировать