| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- using System;
 
- using Utility;
 
- namespace Core.State
 
- {
 
-     public class StateControl : IDisposable
 
-     {
 
-         public Map<string, IState> States
 
-         {
 
-             get { return _states; }
 
-         }
 
-         private Map<string, IState> _states = new Map<string, IState>();
 
-         public IState CurrIState
 
-         {
 
-             get { return _currIState; }
 
-         }
 
-         private IState _currIState;
 
-         public string CurrStateName;
 
-         public void AddState(string name, IState state)
 
-         {
 
-             _states[name] = state;
 
-         }
 
-         public void Update(float t)
 
-         {
 
-             if (_currIState != null)
 
-             {
 
-                 _currIState.Update(t);
 
-             }
 
-         }
 
-     
 
-         public void ChangeState(string name, IStateEnterData iStateEnterData = null,bool isQiangZhi=false)
 
-         {
 
-             if (name.Equals(CurrStateName))
 
-             {
 
-                 return;
 
-             }
 
-             if (!_states.TryGetValue(name, out IState state))
 
-             {
 
-                 return;
 
-             }
 
-             if (_currIState != null)
 
-             {
 
-                 if (!isQiangZhi&&!_currIState.IsSwitch(state))
 
-                 {
 
-                     return;
 
-                 }
 
-                 _currIState.Exit();
 
-             }
 
-             CurrStateName = name;
 
-             _currIState = state;
 
-             _currIState.Enter(iStateEnterData);
 
-         }
 
-         public void Dispose()
 
-         {
 
-             for (int i = 0; i < _states.Count; i++)
 
-             {
 
-                 IState istate = _states.GetValueByIndex(i);
 
-                 if (istate != null)
 
-                 {
 
-                     istate.Dispose();
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |