protected virtual void OnAwake() { StateMachine = new RoleStateMachine(this.gameObject, true); RoleStateAbstract[] states = GetComponents <RoleStateAbstract>(); for (int i = 0; i < states.Length; i++) { StateMachine.AddState(states[i]); } }
/// <summary> /// 角色控制器初始化 /// </summary> /// <param name="roleType"></param> /// <param name="roleInfo"></param> /// <param name="ai"></param> public void Init(RoleType roleType, RoleInfoBase roleInfo, IRoleAI ai) { CurRoleType = roleType; CurRoleInfo = roleInfo; CurRoleAI = ai; m_IsInit = true; StateMachine = new RoleStateMachine(this.gameObject, true); RoleStateAbstract[] states = GetComponents <RoleStateAbstract>(); for (int i = 0; i < states.Length; i++) { StateMachine.AddState(states[i]); } Attack = new RoleAttack(this); m_Hurt = new RoleHurt(StateMachine, this); m_Hurt.OnHurt = OnHurt; ToIdle(); m_RoleOperationsStatus = new StateMachine <RoleOperationsStatus>(this.gameObject, true, CurRoleInfo.RoleId + ":" + "RoleOperationsStatus"); StateMachineDispatcher.Instance.AddEventListen(CurRoleInfo.RoleId + ":" + "RoleOperationsStatus", OnRoleOperationsStatusCallBack); m_RoleOperationsStatus.ChangeState(RoleOperationsStatus.NoOperations); //初始化血条 InitRoleHeadBar(); }
public RoleHurt(RoleStateMachine fsm, RoleCtrl role) { m_StateMachine = fsm; m_Role = role; }