@v_grachov

Какие есть best practices для unity3d?

Не так давно решил для души заняться разработкой игр под Unity3d. Вроде бы все понятно, но не охота наделать детских ошибок.
В первую очередь интересуют архитектурные паттерны. Как в больших проектах решают проблему "пришел менеджер и теперь у нас за победу начисляют не очки, а опыт". Как добиваются гибкости.
  • Вопрос задан
  • 5447 просмотров
Решения вопроса 1
@afrokick
devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/

Разрабатывать компонентами код, чтобы легче было поддерживать.

Ввести интерфейсы и общаться через них(не привязываемся в реализации, только к функционалу).

ЗЫ Нет единственного правильного решения, все зависит от специфики проекта.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
HomoLuden
@HomoLuden
1. Не используйте множественного наследования от MonoBehavior:
class SomeBaseBehavior : MonoBehavior
{...}
class SomeConcreatBehavior : SomeBaseBehavior
{...}

Я вижу как минимум одну причину (если не ошибаюсь): методы Start, Update и прочие, судя по всему, не виртуальные.
2. Не называйте скрипты поведения в честь объектов (префабов и прочего). Скрипты поведения не должны быть привязаны к какому-то конкретному префабу
3. Для получения информации от "соседних скриптов" используйте SendMessage на своем gameObject или у родительского (gameObject.transform.parent).
4. Ну и наверно держите баланс между связностью скриптов между собой и производительностью. Т.е. кэшируйте вызовы
GetComponent<...>(); 
SendMessage(Wrap<T> valueRequest)

которых много. Кэширование самих объектов скрипта для меня пока под вопросом (кажется стоит этого избегать).

ЗЫ: возможно я в чем-то неправ, сам только начал активно знакомиться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы