public void Physics_Update(float delta) { _moveNode.Physics_Update(delta); // Conditions of transition to Idle or Run states if (Nucleus_Utils.StateMachine_Template.RootNode.IsOnFloor()) { // _moveNode.Velocity.Length() : to deal with deceleration (force the character to stop when his velocity is close to 0) string target_state = (_moveNode.isMoving && _moveNode.Velocity.Length() < 1.0f) ? "Move/Idle" : "Move/Run"; Nucleus_Utils.StateMachine_Template.TransitionTo(target_state, Nucleus_Utils.StateMachine_Template.TransitionToParam_Void); } }
public void Physics_Update(float delta) { _moveNode.Physics_Update(delta); // Conditions of transition to Run or Air states if (Nucleus_Utils.StateMachine_Template.RootNode.IsOnFloor() && _moveNode.isMoving) { Nucleus_Utils.StateMachine_Template.TransitionTo("Move/Run", Nucleus_Utils.StateMachine_Template.TransitionToParam_Void); } else if (!Nucleus_Utils.StateMachine_Template.RootNode.IsOnFloor()) { Nucleus_Utils.StateMachine_Template.TransitionTo("Move/Air", Nucleus_Utils.StateMachine_Template.TransitionToParam_Void); } }
public void Physics_Update(float delta) { _moveNode.Physics_Update(delta); // Conditions of transition to Idle or Air states if (Nucleus_Utils.StateMachine_Template.RootNode.IsOnFloor() && !_moveNode.isMoving) { Nucleus_Utils.StateMachine_Template.TransitionTo("Move/Idle", Nucleus_Utils.StateMachine_Template.TransitionToParam_Void); } // _moveNode.Velocity.Length() : to deal with deceleration (force the character to stop when his velocity is close to 0) else if (!Nucleus_Utils.StateMachine_Template.RootNode.IsOnFloor() && _moveNode.Velocity.Length() < 1.0f) { Nucleus_Utils.StateMachine_Template.TransitionTo("Move/Air", Nucleus_Utils.StateMachine_Template.TransitionToParam_Void); } }