public void Update(IAdaptiveContainer <IFsmInputCommand> commands,
                           int frameInterval,
                           Action <FsmOutput> addOutput,
                           FsmUpdateType updateType,
                           List <FsmInput> limits)
        {
            if (_needReset)
            {
                _needReset = false;
                RebindAnimator(addOutput);
                _posture.Reset(addOutput);
                _movement.Reset(addOutput);
                _action.Reset(addOutput);
            }

            if ((updateType & FsmUpdateType.ResponseToInput) != 0)
            {
                ApplyNewCommand(commands, addOutput, limits);
            }

            _posture.Update(commands, frameInterval, addOutput, updateType, limits);
            _movement.Update(commands, frameInterval, addOutput, updateType, limits);
            _action.Update(commands, frameInterval, addOutput, updateType, limits);
            UpdateFullBodySpeedScale(addOutput);
        }
Beispiel #2
0
 public void Update(IAdaptiveContainer <IFsmInputCommand> commands,
                    int frameInterval,
                    Action <FsmOutput> addOutput,
                    FsmUpdateType updateType)
 {
     if ((_commonUpdateType & updateType) != 0)
     {
         _commonFsm.Update(commands, frameInterval, addOutput);
     }
     if ((_leanUpdateType & updateType) != 0)
     {
         _leanFsm.Update(commands, frameInterval, addOutput);
     }
 }
Beispiel #3
0
        public void Update(IAdaptiveContainer <IFsmInputCommand> commands,
                           int frameInterval,
                           Action <FsmOutput> addOutput,
                           FsmUpdateType updateType)
        {
            if ((updateType & _directionUpdateType) != 0)
            {
                UpdateDirection(commands, addOutput);
            }

            if ((updateType & _movementUpdateType) != 0)
            {
                _commonFsm.Update(commands, frameInterval, addOutput);
            }
        }
Beispiel #4
0
        public void Update(IAdaptiveContainer <IFsmInputCommand> commands,
                           int frameInterval,
                           Action <FsmOutput> addOutput,
                           FsmUpdateType updateType,
                           List <FsmInput> limits)
        {
            if ((updateType & _commonUpdateType) != 0)
            {
                _commonFsm.Update(commands, frameInterval, addOutput);
            }

            if ((updateType & _keepUpdateType) != 0)
            {
                _keepFsm.Update(commands, frameInterval, addOutput);
                _transfigurationFsm.Update(commands, frameInterval, addOutput);
            }
        }