Ответы пользователя по тегу Unity
  • Почему игра зависает при OnTriggerEnter?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    зависает это прям вот фриз или крашится сразу?

    вы пробовали в редакторе проверить/повторить подняв скорость до фантастической?

    с устройства лог через Logcat собирали? смотрели что там?

    Уверены что ничего OnTriggerEnter() не влияет. может у вас есть код на void OnTriggerExit() и при большой скорости ВЫЛЕТАЕТ из тригера и срабатывает еще какая то логика.

    Из описанного ничего явного что могло бы ломать игру - нет. ищите глубже. упрощайте проверочный пример. отладка и поиск. удачи))
    Ответ написан
    2 комментария
  • Не переключается True False. Что делать?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Input.GetKey(KeyCode.D)

    вот тут проблема основная. кроме мешанины флагов которые вас путают))
    почитайте чем отличается
    GetKey
    GetKeyDown
    GetKeyUp.

    и поймете. что GetKey - может несколько раз за кадр сработать.

    и еще важный момент INPUTделать на Update (каждый кард для отзывчивости и адекватности).
    не на FixedUpdate (это под физику)
    Ответ написан
    1 комментарий
  • Как вращать объект по двум точкам, а не по центру?

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

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

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

    очень уж много зависит от текущей реализации движения по пути))
    Ответ написан
    Комментировать
  • Создание большого количества сцен в юнити это нормально?

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

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

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

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

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

    отсюда мы берем коэффициент скорости. и направление)
    условно от - 1 до 1. где (-1) = движемся максимально быстро влево. ,а 1 - соответственно вправо)

    и выйдет что то вроде
    transform.position = new Vector3( transform.position.x+SpeedFactor*Time.deltaTime*playerSpeed, transform.position.y, transform.position.z);

    где SpeedFactor то самое направление от -1 до 1. а playerSpeed - просто дополнительный множитель для удобства контроля в редакторе вынесенный.
    умножение на Time.deltaTime позволяет адекватно управлять. сгладить в независимости от частоты кадров)
    если у вас было до этого "смещать на N пикселей каждый кадр".
    то теперь будет равномерное "смещать на N пикселей в секунду", что куда удобнее воспринимается и адекватнее себя ведет))

    а насчет движения. тут уже отдельная тема. если движется вперед силой, то в принципе можете пробовать двигать силлой добавляя еще одну вправо или влево.
    но придется учесть что без трения и соприкосновения она сама не будет прекращать воздествовать)
    так что когда ввода нет ли достигло края полосы(допустим границы экрана) вам ручками обрезать скорость боковую.
    напрямую контролирую velocity у Rigitbody.

    В принципе ничего не мешает и перемещение оставить так, просто меняя позицию. только просто заменить напрямую обращение к трансформу на https://docs.unity3d.com/ScriptReference/Rigidbody...
    почитайте в чем разница. в доке более менее все описанно)

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    привидите пожалуйста пример где именно обращение к инвентарю и что именно там в инвентаре за код.

    и отчасти Константин Китманов ошибается. а freeExec отчасти верно вам говорит. что при ссылке на объект у вас доступ к полям и методам будет.

    и вот что важно бы вам уяснить, на ВЫКЛЮЧЕННЫХ объектах не работает НИКАКОЙ ПОИСК.
    GetComponentInChildren - это тоже ПОИСК. и все ему подобное не сможет ничего найти на выключенных объектах.
    может в инвентаре у вас не просто получение значения
    inventory.ItemList[0].cost
    а что то в духе
    inventory.GetItemInfo(0);
    ///
    void ItemInfo(int itemIndex)
    {
    something.GetComponent<T>();
    }

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

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

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

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

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

    они продают билборд, а не "мы вам игроков приведем"
    Ответ написан
  • Как решить проблему неправильного спауна?

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

    может там раньше иначе устроен таймер был.
    или в настроиках проекта fixedDeltaTime зачем-то меняли на какое то довольно большое значение (что по сути не стоило делать)
    Ответ написан
    Комментировать
  • Почему не фокусируется InputField в Unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    скопирую в ответ, для кого-нибудь в будущем (тем более даже автор вопроса попросил)

    а скриншот иерархии? что там в настроиках инпутфилда у вас покажете?
    EventSystem есть в сцене?
    в канвасе евент камера выставлена? на самом канвасе висит график реикаст?
    чтоб оно могло ловить клики и прочее))

    рядом просто кнопки есть? они нажимаются? (ну то есть убедится ,что просто евенты кликов попадают на канвас)


    так же было предложение сделать пустую новую сцену и сделать тест на "чистовую"

    создайте просто из меню Юнити, в новой чистой сцене
    GameObject -> UI -> Canvas.
    Потом на канвасе - UI -> InputField.

    Всё, дефолтный пример ,который точно работает - у вас есть. сравнивайте с вашим, смотрите что отличается.
    надеюсь найдете)

    и как итог
    необходимо было добавить EventSystem.
    Вы были правы, спасибо.
    Ответ написан
    1 комментарий
  • Что делать что бы перестал трястись gameobject?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    вы бы код оформили как код.

    а по делу.
    вы знаете что делает у вас кусок (и такой же для Y )
    pos.x += Mathf.Sign(direction_x) * speedMove * Time.deltaTime; ??

    а понимаете полностью суть проверки
    if (Mathf.Abs(direction_x) < maxDis && Mathf.Abs(direction_y) < maxDis) ??

    ну и главное , у вас как только "поровняются" объект и его цель -они не будут один в один совпадать координатами.
    у вас значение direction_x и direction_y будет становиться то крохотным положительным, то крохотным отрицательным.
    связанно это с тем что вы двигаете объект за целью, независимо от текущего между ними расстояния.
    всегда, если не слишком далеко друг от друга - начинает преследование.
    и как бы близко не подошел к цели движется со скоростью (условно то самое
    pos.x += Mathf.Sign(direction_x) * speedMove * Time.deltaTime; ))

    в итоге чуток обгоняет. начинает двигаться обратно. отстает - снова начинает обгонять.

    как решение можете ввести минимальное расстояние, на котором считается что уже "догнал" и перестать преследовать.
    Ответ написан
  • Как обратиться к классу из другого скрипта?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    у вас абы где создается объект char11 .

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

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

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

    храните ссылку. учите основы C#, юнити тут по сути никак не участвует)
    возможно вас даже сбивает с толку "два скрипта на одном объекте".
    Скрипты это отдельные компоненты/классы/объекты) то что они висят на одном GameObject - НИКАК их не объединяет в один класс/объект с общими переменными и ссылками, кроме момента что GetComponent будет находить их рядом))
    Ответ написан
    Комментировать
  • Какая последовательность работы 3д художника?

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

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

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

    мометы перехода/совмещения от 3д моделер - дизайнер(уровней и вообще) - аниматор - дизайнер эффектов и освещения и тд и тп. зависит по большей части от ваших знаний, умения это делать и размера оплаты))
    Ответ написан
    Комментировать
  • Unity: Как отобразить несколько спрайтов в одном объекте?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Если колпаки и диски отличаются только текстурой. то я предложил бы сделать все же более оптимальную штуку

    using UnityEngine;
    
    public class Wheel : MonoBehaviour {
    
    public Texture[] textures;
    public Sprite targetSprite;
    
      void OnMouseDown(){
            targetSprite.sprite = textures[0]; // или любой другой номер или логика выбора.
      }
    }


    код приблизительный) не проверял в Unity)) может где опечатался. но сам принцип главное чтоб уловили.
    Ответ написан
    3 комментария
  • Как сделать физику в игре юнити 2д?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    вы б показали что пробовали...

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

    оба они ходят по полу, какой нибудь коллайдер здоровенный.

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

    просто в редакторе поставить квадратик на пол и потолкать его другим квадратиком (перемещая его в редакторе стрелочками/перетаскивая в Scene View получается же у вас?))
    Ответ написан
    7 комментариев
  • Как сделать карту высот в unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://docs.unity3d.com/Manual/terrain-CreateNeig...
    современная версия юнити и вот такие вот соседние таилы для терреинов.
    В один пихать такое разрешение - просто не имеет смысла. потом с оптимизацией будут только проблемы, потому и не стали даже заморачиваться с картой высот более 16млн точек. (4к разрешением).
    динамическая подгрузка, переходы между локациями. кому нужны проблемы с фризами и подлагами то или вылетом по памяти.
    Ответ написан
    Комментировать
  • Одежда на персонаже в unity работает(анимация) не так(неправильно) как в cinema 4d, почему?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Как один из возможных вариантов. полезть в настроики качества проекта.
    там есть Skin Weights, с параметрами 1, 2, 4 Bones и безлимит.

    возможно у вас там настроики проще чем в cinema , но учтите это может сказаться на производительность, при сложной модели или безлимитном варианте.
    Ответ написан
  • Как переносить строчки в public string?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    собственно погуглить про Multiline
    поглядите вот тут
    https://answers.unity.com/questions/424874/showing...

    или в вкратце выжимка по атрибутам)
    [TextArea(3,10)] //для удобного отображения длинных строк
    или
    [Multiline] //для переноса
    или
    Кастомный эдитор сделать свой (самый трудоемкий, но супер гибкий вариант)
    Ответ написан
    1 комментарий
  • После билда на андроид гуманоидные модели с костями ломаются. В чем может быть дело?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    настройки проекта показали бы.
    есть подозрение на GPU Skinning - возможно включили. и на пк при этом все отлично))
    нагуглите что за галочка если не в курсе. и в принципе попробовать настройки соседние, Jobs и прочее по отключать поглядеть)
    Ответ написан
    1 комментарий
  • Как решить проблему с In-App Purchase in Unity3D 2018.3?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    там собственно везде пишут попробовать установить юнити так чтоб в пути не было пробелов.
    и проект так же) для верности)
    удалить, импортнуть заново IAP. и того гляди пройдет) а вообще наобещали что в Unity2019 исправят или уже исправили)))
    Ответ написан
    1 комментарий