public virtual void InitInstance(Animator animator, CharacterToolsManager toolsManager, Rotator rotator, CharacterAction actionData, CharacterActionHandler actionHandler) { base.InitInstance(animator, toolsManager); this.rotator = rotator; this.actionData = actionData; this.actionHandler = actionHandler; }
public CharacterActionState ActivateState(CharacterActionState state, Vector2 endPosition, Vector2 actionDirection) { // Все необходимые данные для выполнения действия состояния CharacterAction actionData = new CharacterAction(this, skillsManager, state, transform.position, endPosition, actionDirection); // Обработчик действия на "местности" CharacterActionHandler actionHandler = actionsHandlers.FirstOrDefault(handler => handler.HandledState == state); // Создаем экземпляр состояния из шаблона CharacterActionState activeState = ScriptableObject.Instantiate(state); activeState.InitInstance(animator, toolsManager, rotator, actionData, actionHandler); return(activeState); }