示例#1
0
    public void PerformnTransition(EnemyTransition trans)
    {
        if (trans == EnemyTransition.NullTransition)
        {
            Debug.Log("PerformnTransition 无法执行 NullTransition ");
            return;
        }

        EnemyStateID id = CurrentEnemyState.GetIDByTransition(trans);

        if (id == EnemyStateID.NullState)
        {
            Debug.Log("PerformnTransition 无法执行 NullState ");
            return;
        }

        foreach (AbsEnemyState s in statesList)
        {
            if (s.StateID == id)
            {
                CurrentEnemyState.DoBeforeLeaving();
                CurrentEnemyState = s;
                CurrentEnemyState.DoBeforeEntering();
            }
        }
    }
示例#2
0
    public void AddState(AbsEnemyState state)
    {
        if (state == null)
        {
            Debug.Log("AddState state 为空无法添加");
            return;
        }
        if (statesList.Contains(state))
        {
            Debug.Log("AddState " + state.StateID + " 已经存在,无法添加");
            return;
        }

        statesList.Add(state);
        if (statesList.Count == 1)
        {
            CurrentEnemyState = state;
        }
    }