/// <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); } } }