C# Game Programming Cookbook for Unity 3D / Программирование игр на Unity 3D C#. Книга готовых решений.: 1.1.1 Скрипты менеджеры и контролеры

Оглавление
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Я твердо верю в скрипты менеджеры и контроллеры. Мне нравится пробовать делить вещи на отдельные куски; например, в Metal Vehicle Doomgame, у меня есть скрипт-контролер гонки и глобальный скрипт-контроллер гонки.

Zeke0028 26.09.14 в 01:51

0

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

Zeke0028 26.09.14 в 01:57

0

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

Zeke0028 26.09.14 в 02:09

0

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

Zeke0028 26.09.14 в 02:19

0

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

Zeke0028 26.09.14 в 02:29

0

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

Zeke0028 26.09.14 в 02:49

0

Некоторые сценарии менеджер может извлечь выгоду из статичности и доступны по всему миру (для всех других сценариев для доступа), в то время как другие могут быть лучше прикрепить на другие сценарии. Мы имеем дело с этим на каждом конкретном случае. Чтобы получить вещи начали, мы будем смотреть на некоторые из способов, что эти менеджер скрипты могут общаться друг с другом.

Zeke0028 26.09.14 в 03:00

0

В качестве последнего замечания по теме этого раздела, вы можете быть удивлены, разницей между менеджерами и контроллерами. Её действительно не так уж и много, и я решил дифференцировать для моего собственного здравомыслия. Я понимаю контроллеры, как скрипты более крупных глобальных систем, такие как, контроль состояния игры, а менеджеры, как мелкие скрипты применяемые к GameObjects, таких как управление слотами оружия или контроль физики.

Zeke0028 26.09.14 в 03:08

0

Разница на практике почти не заметна, так что не волнуйтесь, если кажется, что применили не тот термин в каком либо случаи по сравнению с другим. Я буду стараться изо всех сил сохранять логику, но это не означает, что она всегда будет иметь смысл для всех остальных!

Zeke0028 26.09.14 в 03:12

0
Минутку...