示例#1
0
        /// <summary>
        /// 添加状态
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public void AddState(AnimatorEnum key, FSMBase value)
        {
            if (stateDic.ContainsKey(key))
            {
                return;
            }

            stateDic.Add(key, value);
        }
示例#2
0
        /// <summary>
        /// 切换状态
        /// </summary>
        /// <param name="stateId"></param>
        public void ChangeState(AnimatorEnum stateId)
        {
            if (curState == stateId)
            {
                return;
            }

            if (curState != AnimatorEnum.None)
            {
                // 如果当前状态不为None,就执行 离开当前状态的API
                stateDic[curState].OnExit();
            }

            curState = stateId;

            stateDic[curState].OnEnter(); // 进入要切换的状态
        }
示例#3
0
        public FSMManager()
        {
            stateDic = new Dictionary <AnimatorEnum, FSMBase>();

            curState = AnimatorEnum.None;
        }