public void SetActiveState(int type, Utility.VoidDelegate clearHandle = null) { if (!mStateMap.ContainsKey(type)) return; if (mActiveState != null) mActiveState.OnExit(); if (clearHandle != null) clearHandle(); mActiveState = mStateMap[type]; if (mActiveState != null) mActiveState.OnEnter(); ActiveStateType = type; }