public void RemoveStateMachine(AbsEntity entity) { AbsStateMachine machine = null; if (_stateMachineDict.TryGetValue(entity, out machine)) { machine.UnInitialize(); _stateMachineDict.Remove(entity); } }
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); }
protected override void OnDetachGameObject() { base.OnDetachGameObject(); _stateMachine = null; StateMachineMgr.singleton.RemoveStateMachine(Entity); }
protected override void OnAttachGameObject(GameObjectEx goEx) { base.OnAttachGameObject(goEx); _stateMachine = StateMachineMgr.singleton.CreateStateMachine(Entity); }
public AbsState(AbsStateMachine machine) { Entity = machine.Entity; Machine = machine; }