• Стрельба из лука, как реализовать выброс стрелы?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    arrowPrefab у вас объект с Rigidbody ?
    Отлично работает AddForce в случае наличия физического тела. Просто не забыть что тип силы бывает разный, для случая стрелы отлично подходит импульс.

    как то так
    arrow.AddForce(arrow.transform.forward * forcePower, ForceMode.Impulse);
    Ответ написан
    4 комментария
  • Какую рекламу использовать в Android игре?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Admob трудно интегрировать в Unity3d? серьезно?
    импортировать пакет. и по примеру из документации вызвать баннер (вписав свой идентификатор)
    В той же Unity есть еще их родная UnityAds с документацией и не плохими показателями.
    Ответ написан
    2 комментария
  • Почему в unity3d при билде текстуры весят 8-10мб?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Юнити не хранит jpg. она хранит текстуру. и тут все упирается в РАЗМЕР и ФОРМАТ для сжатия.
    У вас даже на скриншоте предупреждение о том что не может её сжать.
    Прочитайте что такое POT текстуры.
    И так к слову вы ни капли не рассказали (кроме размера 1мб) об исходном фаиле)
    Ответ написан
    3 комментария
  • Как скомпилировать игру на Mac для Windows?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Все верно, такого пункта там и не будет (если не установлены и доступны компоненты). Точно проблемно собрать приложение под Mac и iOS из под Windows.

    Не знаю как вы проверите и запустите его, но можете переустановить юнити , не забыв установить галочки для
    "... Windows/Linux/IOS components to be able to build them..."

    Тогда и сможете из под Mac собрать виндовый exe.
    Ответ написан
    3 комментария
  • Как сделать такое выпадающее меню?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    А чем вас не устроил вариант из мануала? Там есть пример и списка, и как название добавить.(неужели не находили погуглив)
    https://docs.unity3d.com/Manual/editor-PropertyDra...
    Ответ написан
    7 комментариев
  • NullReferenceException выдаёт, что делать?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    GetComponent() не находит компонент.
    Понимаете ли вы что ищете компонент/скрипт на том же объекте, на котором подвешен скрипт Rand ?

    если он не на том же объекте, а на дочернем или просто в сцене, попробуйте или правильно организовать или искать через GameObject.FindObjectOfType()
    Ответ написан
  • Не перемещается персонаж?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Давайте я вам укажу на основную проблему в логике

    tempPos.z = tempPos.z * speed * Time.deltaTime;//изменяем позицию игрока

    вот в этой строчке.
    просто поподставляйте значения. ДельтаТайм по сути меньше 1, а скорость константа. Положение персонажа тоже по сути константа.

    Тоесть по сути если по началу положение tempPos.z отличное от нуля, то вы его просто уменьшаете, стремите к нулю, беря дробную часть.

    Как вариант вам нужно что-то вроде прибавления к текущей позиции смещения
    tempPos.z = tempPos.z + speed * Time.deltaTime * transform.forward;//к текущей позиции добавили в направлении вперед немного))
    Ответ написан
    1 комментарий
  • Дергается движение в 2d игре unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Если камера прицеплена к подвижному объекту(на котором весь этот скрипт движения), то могу предположить что беда вот в этой строчке (хотя еще может быть беда с иерархией и другими скриптами)

    speed = -5f - Time.timeSinceLevelLoad * 0.07f; //скоротсь

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

    timer+=Time.deltaTime;
    speed = -5f - timer* 0.07f; //скоротсь
    Ответ написан
    3 комментария
  • "Visual Studio Tools" tab for unity?

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

    Так то у юнити в инсталяторе (помошник установки или как он там у них правильно зоветься) есть галочка поставить визуал студию ( и поставиться все разом с поддержкой и тд и тп)

    И про видео - оно более чем годичной давности. никакой вкладки в меню от Visual Studio Tools давненько у себя не наблюдаю (с момента вышеописанной интеграции этих тулов прям в Юнити)

    Проверять интеграцию надо путем - студия подключается в дебаг режиме и точку остановки ловит.
    Ответ написан
  • Как реализовать триггеры?

    MrMureno
    @MrMureno
    VR for all
    Когда то давно использовали вот такую штуку www.quartz-scheduler.net и документация вроде была, и в инетах найти можно было решение проблем. хотя и были свои заморочки из-за того что использовали не как планировщик задач) а как жуткий костыль для отложенного выполнения задач на сервере))))
    Ответ написан
    Комментировать
  • Можно ли реализовать что-то вроде мини-СУБД для управления контентом игры в Unity3D?

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

    Почитайте про ScriptableObjects
    https://docs.unity3d.com/ScriptReference/Scriptabl...

    И про то как в эдиторе кастомные контролы сделать.
    Вроде
    https://docs.unity3d.com/ScriptReference/EditorGUI...
    docs.unity3d.com/ru/current/Manual/editor-EditorWi...
    и подобного.

    Должно помочь))
    Ответ написан
    1 комментарий
  • Как правильно рейкастить тач на 2д объект?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    А теперь по делу.
    Простой рейкаст - работает с 3d коллайдерами.
    Для 2D есть своя физика и рейкасты. что-то вроде :

    var worldTouch = Camera.main.ScreenToWorldPoint(touch.Position);
    var hit : RaycastHit2D;
    hit = Physics2D.Raycast (Vector2(worldTouch.x,worldTouch.y),Vector2.zero, Mathf.Infinity);

    почитайте чуток документацию ;)
    Ответ написан
    3 комментария
  • Unity3d, из-за чего происходят ,указанные ниже баги, при смене платформы?

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

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

    и вообще работа с тапами и с мышкой очень сильно отличается) привыкайте к этой мысли.
    Мышь как минимум всегда существует. не бывает две мыши и тд и тп.
    Ответ написан
    Комментировать
  • Как реализовать двойной клик (Double Click)?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    простая реализация?) и на объекты кликать.
    тогда если умеете кодить (судя по описанию вопроса маловероятно) вот вам план так сказать

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

    если и таймер маленький и клики рядом - считает что был дабл клик.

    а там хоть лучом, хоть по интерфеису, принцип останется таким же.

    и все это не оч сложно( но с телефона писать сюда для вас код увы) да и полезно будет самому сделать
    Ответ написан
    3 комментария
  • Реализация кнопки Back на Android в Unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Верно все написал Путин ))))
    а то что у вас " ругается на function Update () и return;"
    так у него на .js написано.

    у вас видать C#
    void Update()
    {
     if (Application.platform == RuntimePlatform.Android)
      {
        if (Input.GetKeyDown(KeyCode.Escape)) 
        {
          Application.Quit(); 
        }
      }
     }
    Ответ написан
    5 комментариев
  • Почему некоторые шрифты искажаются на внешнем мониторе?

    MrMureno
    @MrMureno
    VR for all
    может скриншоты есть в оригинальном разрешении, чтобы увидеть как они там "нечитаемые"? экран просто дублируется на внешний или расширяет? может после ретина дисплея у вас неприязнь разрешений поменьше(ну или плотности пикселей поменьше)? да и модель монитора можно было б поточнее указать)

    // и немного сарказма.
    А то знаете у меня вот есть нож один, а второй почти такой же большой, но шкурки у помидоров большой нож режет хуже. Хоть у него вроде и ручка деревянная удобная, и храню я его в специальной подставке.

    ну и DVI или HDMI не имеет тут никакого значения.
    Ответ написан
  • Как вращает кватернион?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    и снова здраствуйте Дмитрий)
    "с достаточной ли скоростью" ? что?
    кватернионы это всего лишь вариант математического описания поворотов, для более "правильного" что-ли их сложения и прочих операций)
    С какой скоростью будете вращать - с такой и будет вращаться.
    Заменить этакий "определитель попали в зону или нет" состоящий из коллайдера, на объект который во все стороны лучи шлет. Скорее всего сомнительная затея. Как по производительности, так еще и куча проблем если вдруг нужна форма не круга, а квадрат, ромб. Не дай боже в объеме, а не просто в плоскости надо будет.

    Легче уже тогда завести список объектов и после их перемещения проходить по списку и определять расстояние) мол ближе чем 5 метров к центру "источника"
    Ответ написан
    7 комментариев
  • Как можно райкастом узнать колличество полигонов у объекта?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Правильно сказали, у вас после рейкаста
    void FixedUpdate()
        {
            RaycastHit hit;
    
            if (Physics.Raycast(transform.position, -Vector3.up, out hit))
            {
                print("Found an object - distance: " + hit.distance);
            }
        }


    есть (в объекте hit) ссылка на коллайдер/объект.

    а дальше, все что хотите достаете

    hit.collider.GetComponent<ЛЮБАЯ ИНФА>()
    mesh - геометрия
    transform - позиция и размеры
    ну и дальше из рендера материал, текстуру и прочая любая гадость навешанная на объект с этим коллайдером.
    Ответ написан
    Комментировать
  • Как написать OnCollisionEnter()?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    OnCollisionEnter там параметр коллизия, а не колллайдер. У коллизии не бывает тегов и прочего.
    oid OnCollisionEnter(Collision bullet)
        {
            if (bullet.(ТУТ УЗНАТЬ КОЛЛАЙДЕР ИЗ КОЛЛИЗИИ).CompareTag("Ring"))
            {
                r = true;
                Debug.Log("R");
            }


    и дальше по аналогии. Коллизия - по сути просто инфа о точках пересечения.
    Ответ написан
    3 комментария
  • Как изменить размер объекта, при переносе в другую сцену?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Самый очевидно простой вариант - соблюсти одинаковый scale в обоих сценах (и в будущем проблем так меньше будет)
    А если через скрипт, то "подгонять" скеил ручками.
    https://docs.unity3d.com/ScriptReference/Transform...
    void Example() {
            transform.localScale = new Vector3(5, 5, 5);
        }


    вообще я так понял вы ищете что-то вроде
    https://docs.unity3d.com/ScriptReference/MonoBehav...
    чтобы определить что вы попали в другую сцену?!

    А про камеру - ссылку на неё сохранить(на gameobject) и просто SetActive(bool f);
    public class ExampleClass : MonoBehaviour
    {
      //назначить в редакторе или в Awake() методе найти главную камеру
      //сам факт получить ссылку на камеру
      public GameObject cameraGO;
        void OnLevelWasLoaded(int level) {
            if (level == 13)//номер уровня или проверку по имени сделать
                {cameraGO.SetActive(true);}        
        }
    }


    И немного занудства. По хорошему вся эта кастомизация объекта должна сохраняться и описываться какой-нибудь структурой.
    В духе -> Список Деталей, а у каждой детали, Размер,Цвет и Прочность.
    Чтобы не через неразрушаемый объект переносить, а сохранив и передав , описывающую такую структуру, можно было восстановить кастомизированный вид.
    Появиться возможность как минимум сохранить два , три ,четыре вида кастомизации.

    (я так понял вы вроде тридэшник и надеюсь понятно в общих чертах рассказал)
    Ну а после уже и патерны-шматерны можете примастыривать.
    Ответ написан
    Комментировать