danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

Jusper, Везде, но наугад строить смысла нет. Нужно разведать сперва территорию на наличие ресурсов.

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

Это так скажем тестовое строительство, а так да у города будет зона влияния которую нужно будет расширять.

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

в игру нужно добавить время песочные часы в инвентаре, пока бегаешь наберается усталость и ты очень тормозной мобильный враг просто убевает

split97 split97

в игру нужно добавить время песочные часы в инвентаре, пока бегаешь наберается усталость и ты очень тормозной мобильный враг просто убевает

ViktorJaguar ViktorJaguar

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

Логотип проекта Unity

Дополняем игровые скрипты

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

Потому ниже я приведу вам несколько примеров, как это можно сделать.

Из редактора

Избежать всех этих неприятностей помогут самые обычные, нативные хеш-таблицы, реализуемые через классы Hashtable и Dictionary. Единственный минус от их использования только один - у нас нет адекватной стандартной возможности проконтролировать, существует/удален из игры какой-то объект, в результате чего иногда хеш-таблицам свойственно "распухать" при работе с большим количеством данных.

Через директиву

Так же есть другие способы повлиять на содержимое игровых объектов.
Тут мы можем вспомнить директиву #if UNITY_EDITOR, Используется она прямо в игровых скриптах, в формате

#if UNITY_EDITOR
// Ваш код
#else
//Код в другом случае
#endif

Где директива #else не является обязательной. С помощью этих директив вы можете встроить в игровые классы любые данные, начиная от алгоритмов, заканчивая полями - на этапе формирования билда, все они будут отсечены.

Единственным минусом директивы я могу назвать то, что для игровых библиотек становится неочевидным что некоторые данные нельзя трогать из "сборки игры". Иными словами это нарушает инкапсуляцию.

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

Совет от автора

Так же расскажу вам о той практике, которую применяю самолично.
Смысл её состоим в том, что для объектов вы создаете обычное несереализуемое поле, аля

public object editorTag;

В которое закидываете любую временную информацию по своему усмотрению. Это удобно, практично, и не вызывает лишних вопросов.

Смотрите также:


Комментарии

Здесь еще никто не оставил комментарий

Справка