Ad1yar, Делай так, как я написал, в том, что тебе другой чел посоветовал, нет смысла. Тебе не нужна проверка на тэг, если ты делаешь проверку на компонент.
Ad1yar, Ты вообще понимаешь что делаешь? Ты пытаешься получить компонент у BulletDestroy, а не у того, с чем произошла коллизия. Вместо other.gameObject.tag пиши other.gameObject.TryGetComponent
Либо CharacterController юнитевский, либо это смотри. 90% тех, кто советует движение делать исключительно физическим, чего-то сложнее гиперказуалок, где это нормально, в жизни не видели.
Zefirot, Можешь здесь посмотреть как делать более-менее нормальное передвижение. Если игра не про физику, то там физика, особенно в передвижении персонажей, не нужна. Если посмотришь видео и сравнишь с играми, особенно с большими, то увидишь, что персонажи там перемещаются именно так. Например в скайриме, там можно увидеть, как персонаж примагничивается к поверхности. Существует даже Character Controller, который по такому же принципу работает. А всё, что ты делаешь с физическими материалами - костыли, которые могут что-нибудь сломать позже.
Отключить физику на объекте, двигать его не через AddForce/velocity, а через MovePosition. Изменение массы и блокировка поворота уже говорят о том, что ты костылями пытаешься задачу решить.
i__egor, Зачем тебе этот компонент, который, как я понял, является ui, в рантайме создавать? Верстаешь ui в эдиторе, там же прокидываешь зависимости через инспектор. Я не вижу того, что видишь ты и не понимаю в чем у тебя проблема, а вытягивать информацию из тебя по кусочкам мне надоело. Опиши нормально что ты делаешь и свою проблему. Желательно в отдельный вопрос.
Плагина такого, который тебе нужен нет, в других редакторах этой опции нет. Нет его потому что это твоя локальная проблема, ее нет у остальных пользователей.
i__egor, Как я и написал выше, ты делаешь не то. GameObject.Find вообще худшее, что можно было придумать в такой ситуации. Ты либо зависимости через инспектор прокидываешь, чего достаточно в 90% случаев, либо делаешь метод и через этот метод инициализируешь свой компонент. Учись нормально прокидывать зависимости. А в чем проблема прокинуть эту панель в канвасе через инспектор?
i__egor, Ты хочешь, чтобы вместо тебя редактор кода решал какие ссылки на объекты тебе нужны, а какие нет? Так, к сведению, на объекте всегда есть либо Transform либо RectTransform, возможно рендерер. Ты в итоге будешь дольше сидеть и редактировать сгенерированный код, удалять ненужные тебе компоненты. Не думаю, что такой плагин вообще существует, можешь попробовать свой сделать.
Zefirot, Ты хоть сам понимаешь что делаешь? Если ты вместо GroundCheckerPosition укажешь Vector3.zero, он у тебя будет указывать в центр твоего объекта, на котором этот монобех висит. В данном случае GroundCheckerPosition - смещение от центра объекта. То же самое у тебя будет, если ты вместо TransformPoint напишешь просто transform.position. Еще раз повторяю.
GroundCheckerPosition у тебя задается единоразово в эвейке. Vector3 - значимый тип данных. Это значит, что у тебя не ссылка на какой-то вектор в GroundCheckerPosition, а значение вектора, оно не меняется с перемещением объекта.
У тебя есть GroundChecker. Это уже GameObject - ссылочный тип. То есть, если ты будешь брать GroundChecker.transform.position, то тебе будет возвращаться вектор текущей позиции, а не той, которая была минуту назад, которую ты в эвейк взял.
Соответственно, у тебя будет не Physics.CheckBox(GroundCheckerPosition, GroundCheckerHalfSize);
А Physics.CheckBox(GroundChecker.transform.position, GroundCheckerHalfSize);
Соответственно, не Gizmos.DrawCube(GroundCheckerPosition, GroundCheckerSize);
А Gizmos.DrawCube(GroundChecker.transform.position, GroundCheckerSize);