Beispiel #1
0
        /// <summary>
        /// 状态切换
        /// </summary>
        /// <param name="id"></param>
        public void Change(object id, object changeHandleParam = null)
        {
            if (id.Equals(cur_StateID))
            {
                return;
            }
            else
            {
                //1.退出状态
                if (cur_State != null)
                {
                    cur_State.Exit();
                }
                //2.记录新切换的状态
                cur_StateID = id;
                cur_State   = getSate(id);
                //3.进入新状态
                cur_State.Enter();
                //4.绑定新状态更新内容
                OnUpdateHandle      = cur_State.update;
                OnFixedUpdateHandle = cur_State.fixedUpdate;
                OnLateUpdateHandle  = cur_State.lateUpdate;

                if (onChangeHandle != null && changeHandleParam != null)
                {
                    onChangeHandle.Invoke(changeHandleParam);
                }
            }
        }