Да-да, это очередной пост "я_хачу_в_геймдев_памагите!", но прошу не сильно минусить и не хейтить, т. к. это не просто порыв души, а настоянный в 3 месяца порыв души.
Мне потребовалось это время, чтобы структурировать свои вопросы и избежать в посте выражение той попоболи, которую испытываю. Насколько это получилось — судить вам, но на мой взгляд, о…
Как чел который имеет 7+ опыта в программировании и поработал на юньке около года скажу так - по хорошему забей хер. Я хз кто нужен в геймдев конторах и откуда они собираются находить этих гениев. Всем нужен рукастый сеньор на зарплату мидла который им сделает красиво, без онбординга погрузится в проект (а лучше потащит его на своем горбу) и по возможности будет еще модельки в свободное (от основной работы) время для проекта моделить и читать постановки от геймдиза телепатически. Т.е. наверное есть хорошие конторы, но они ищут только очень скиловых работяг и скорее всего не с улицы, а по знакомству. Например с моим опытом они мне просто не отвечали на письма (5 лет пыходжса в ерп, 1 год юньки, год шарпов), т.е. им тупо не интересно возиться с челом которого надо хоть как-то доучивать. Возможно там все отюривается на уровне ХРюши которая такая "надо 3 года юнити, тут 1 год, не подходит".
Если позволяет текущее состояние лучше попробуй сделать небольшую игру сам и ее зарелизить. Это гораздо ближе к желанию "хочу делать компьютерные игры" т.е. хочу решать и творчески придумывать игру. А не дрочить говномобилки с метой.
По твоим вопросам:
1. Первое что надо делать чтобы стать программистом понимающим что происходит в проекте - думать за машину. Например у тебя есть твой скрипт который на 11 элементе ведет себя не правильно. Что надо сделать? В голове прогнать весь процесс для 10 элементов и на 11 у тебя должно придти озарение "ага, у меня здесь асинхронно запускается для каждого таймер который делает проверку больше ли ИДшник суности чем 10, а у меня 11, получается вот этот кусок не запускается". Т.е. в голове у тебя строится вся информационная структура актуальная для текущей задачи и удерживается пока ты ее не решишь. Это как раз и есть та причина почему програмистов не стоит отвелкать. Как на картинке https://cs9.pikabu.ru/post_img/big/2018/03/08/11/1520532613119352287.jpg
2. Возможно проблема не в твоем скрипте непосредственно, а в том что ты запускаешь силами юнити или происходит фоном. Изучи основной порядок выполнения разных моментов в юнити. https://docs.unity3d.com/ru/2019.4/Manual/ExecutionOrder.html
3. По поводу поиска сущностей на лету - не делай так. Попробуй вникнуть в концепцию DI (в юнити это делает сторонний плагин Zenject) https://www.youtube.com/watch?v=IS2YUIb_w_M
Если надо делать это не на ходу и не хочешь зенджект - делай публичные поля и перетаскивай объекты через редактор. Если надо хранить коллекцию созданных на лету объектов - в каком нибудь создающем объекте ххрани их список. На крайняк поиск делай только на Start() или Awake(), но каких-то объектов может не найти, т.к. создаются просыпаются они не одномоментно.
4. Так же поизучай концепцию Action/Event/Delegate, именно C#. UnityEvents используй непосредственно для встроенных штук, типа интерфейса. Для остального лучше используй шарповое.
Успехов.
Спасибо, бро!
Да, я знаю, что Unity - далеко не предел мечтаний и зп там низкие, но как я писал, накрыл кризис среднего возраста, хочется в жизни делать то, что хочется, а не то, что надо (это я именно про геймдев, по сравнению с другими отраслями программирования).
К остальным советам прислушаюсь! Где можно, как раз делаю публичные поля (точнее, SerializedFileds), про ZenJect слышал, но не знал, что за зверь, а оно вот оно что!
Комментарий недоступен