示例#1
0
        public void RemoveStateMachine(AbsEntity entity)
        {
            AbsStateMachine machine = null;

            if (_stateMachineDict.TryGetValue(entity, out machine))
            {
                machine.UnInitialize();
                _stateMachineDict.Remove(entity);
            }
        }
示例#2
0
        public AbsStateMachine CreateStateMachine(AbsEntity entity)
        {
            AbsStateMachine machine = null;

            if (!_stateMachineDict.TryGetValue(entity, out machine))
            {
                machine = new HumanStateMachine(entity);
                machine.Initialize();
                _stateMachineDict[entity] = machine;
            }
            return(machine);
        }
示例#3
0
 protected override void OnDetachGameObject()
 {
     base.OnDetachGameObject();
     _stateMachine = null;
     StateMachineMgr.singleton.RemoveStateMachine(Entity);
 }
示例#4
0
 protected override void OnAttachGameObject(GameObjectEx goEx)
 {
     base.OnAttachGameObject(goEx);
     _stateMachine = StateMachineMgr.singleton.CreateStateMachine(Entity);
 }
示例#5
0
 public AbsState(AbsStateMachine machine)
 {
     Entity  = machine.Entity;
     Machine = machine;
 }