Skip to content

Whitebrim/2RealLife

Repository files navigation

2RealLife

Unity 2019.4.5f1

Инструкция по изменению поведения кота:

Для создания нового типа действия нужно создать новый ScriptableObject ActionType (Пкм "Create > Action Type"). После этого добавить этот SO в лист "Available Actions" на объекте "Cat". Во всех SO настроений кота (ScriptableObject Mood), которые есть в листе "Available Moods" в словаре "Consequences" появится новая запись с только что добавленным действием, которые надо проинициализировать как указано в разделе "Как создать новое настроение".

Для создания нового действия нужно создать новый класс, который реализует интерфейс IAction, затем создать ScriptableObject Action (Пкм "Create > Action"), куда в поле "Action" выбрать новосозданный скрипт, реализующий IAction. В ActionType выбрать тип действия, которое производится.

Для создания нового настроения нужно создать новый ScriptableObject Mood (Пкм "Create > Mood") и добавить его в поле "Available Moods" на объекте "Cat". Если в поле "Available Actions" есть хотябы одна запись, то в этом SO появятся записи в Dictionary "Consequences", которые надо проинициализировать. Проинициализировать можно в удобном Preview, который откроется в инспекторе у кота, если клинкуть на настроение. Если кот будет изменять поведение, то ставим галочку в поле "Change Mood", появляется поле "New Mood" в котором выбираем настроение на которое перейдет при этом действии. Если кот не будет менять настроение, то галочку ставить не надо. Для добавления реакции кота на действие игрока надо подписать на событие "On Action Applied" SO Action которое мы создали для этой реакции и выбрать динамический метод "Execute".

Листы "Available Moods" и "Available Actions" принимают уникальные не Null значения и автоматически добавляют/удаляют записи. О всех непроинициализированных записей словарей можно узнать из логов ошибок в консоли. Записи в словари можно добавить/удалить только через добавление/удаление соответствующих действий в листе "Available Actions".

Inspector