//прерывание и смена состояния
 public virtual void changeStrategy(StrategysType strategyType)
 {
     if (_allStrategy.ContainsKey(strategyType)) {
         _currentStrategy = _allStrategy[strategyType];
         _currentStrategy.onStartState(_target);
         _target = _currentStrategy.target;
     }
 }
    public void addState(AbstractStrategy strategy, bool mainState = false)
    {
        if (mainState == null)
            mainState = false;
        _allStrategy.Add (strategy.getStrategyType(), strategy);

        if (mainState) {
            _currentStrategy = strategy;
            _currentStrategy.onStartState(_target);
            _target = _currentStrategy.target;
        }
    }
 //прерывание и смена состояния
 public virtual void changeStrategy(AbstractStrategy startegy)
 {
     _currentStrategy = startegy;
     _currentStrategy.onStartState(_target);
     _target = _currentStrategy.target;
 }