Ящик, как и любой объект взаимодействия, включал подсветку (окантовку), если подойти к нему на определенное расстояние. Находясь на заднем плане, ящик имел другой спрайт, а остальные интерактивные объекты не должны были взаимодействовать с ним. Только герой и только лицом вперед. Перемещение ящика с одного плана на другой - это состояние героя. Войти в перемещение ящика можно было, находясь в состоянии покоя (idle). Такое ограничение замедляло геймплей. Поэтому в каждое состояние, там где это было уместно, были включены правила по взаимодействию с ящиком. Ящик был коронован, у него появился свой тег. А чуть позже подвид: деревянный и металлический.
Спасибо за статью, интересно было почитать.
А откуда такой страх перед Start и Update? В Unity же есть возможность включать/отключать Update для конкретных объектов, если не нужно, чтобы они вхолостую обрабатывались.
Спасибо за отзыв, попробую ответить на ваш вопрос.
Когда-то давно, изучая тему оптимизации, я натолкнулся на ряд статей, например вот эту:
https://blog.unity.com/ru/technology/1k-update-calls
Что касается метода Start, так сложилось со временем, мы перестали использовать его совсем из-за архитектуры, которую выстрадали. "Управляющий уровнем" на старте сцены собирает все объекты со сцены. Ищет там ряд интерфейсов. Создает и восстанавливает различные объекты окружения, врагов и прочее. У этого работяги есть свои состояния или этапы: факт загрузки сцены, сбор и идентификация объектов, создание противников, инициализация объектов (вместо Start), восстановление состояний объектов, создание доп. объектов (например, места урона противников). Так мы, в том числе, понимаем на каком этапе загрузка сцены и какое значение прогресса загрузки отображать в UI.
Отключать Update? Это как, давно пользуюсь движком, но не встречал такого
Верхушка интерактивных объектов - класс Interaction, унаследованный от MonoBehaviour. Он дает всем интерактивным объектам: хранение уникального номера, инициализацию, восстановление и вызов действия.Уверены, что так лучше? Кмк, тут лучше бы композиция подошла.
Не совсем понимаю, можете привести пример пожалуйста?
Здесь наследование, композиция не подходит, так как нужно размещать объекты в виде компонентов. Чтобы настраивать параметры в Inspector. Например в Inspector настраивать связи с другими объектами, которые реализуют интерфейс IInteraction.
Постараюсь ответить на все вопросы. Техническая часть статьи была на мне