SETI | FPS Квест на Unity без кода - пост #5
SETI | FPS Квест на Unity без кода - пост #5

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

3737

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

 Второй шаг - сравнение переменной с определенным названием. Если совпадает - идем в 4-ое состояние

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

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

И это мы ещё не говорим о том, чтобы всем запискам назначить отдельный слой и делать рейкаст только по этому слою, чтобы «не задевать» другие объекты и не делать лишние проверки.

В общем, автор молодец, что делится своими наработками и советами, но пока что советы по факту вредные.

3
Ответить

"на каждой записке должен быть компонент"

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

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

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

Ответить