MovementState ManageRun(MovementState previous, MovementStateParam param) { MovementState newState = previous; //DebugLogLocal ("Run manage"); //IDLE if (IsIdle(param)) { DebugLogLocal("Run idle"); newState = MovementState.Idle; } //JUMP if (param.jumpRequired) { DebugLogLocal("Run jump"); newState = MovementState.Jump; } //FAll if (IsFalling(param)) { DebugLogLocal("Run fall"); newState = MovementState.Fall; } return(newState); }
MovementState ManagePushUp(MovementState previous, MovementStateParam param) { MovementState newState = previous; //DebugLogLocal ("Fall manage"); //IDLE if (IsIdle(param)) { DebugLogLocal("pushup idle"); newState = MovementState.Idle; } //RUN if (IsRunning(param)) { DebugLogLocal("pushup run"); newState = MovementState.Run; } //FALL if (IsFalling(param)) { DebugLogLocal("pushup fall"); newState = MovementState.Fall; } //JUMP /*if (IsGoingUp(param) && !param.inAirStream) { * DebugLogLocal ("pushup jump"); * newState = MovementState.Jump; * }*/ return(newState); }
MovementState ManageDoubleJump(MovementState previous, MovementStateParam param) { MovementState newState = previous; //DebugLogLocal ("DoubleJump manage"); //IDLE if (IsIdle(param)) { DebugLogLocal("DoubleJump idle"); newState = MovementState.Idle; } //RUN if (IsRunning(param)) { DebugLogLocal("DoubleJump run"); newState = MovementState.Run; } //FAll if (IsFalling(param)) { DebugLogLocal("DoubleJump fall"); newState = MovementState.Fall; } return(newState); }
MovementState ManageJump(MovementState previous, MovementStateParam param) { MovementState newState = previous; //DebugLogLocal ("Jump manage"); //IDLE if (IsIdle(param)) { newState = MovementState.Idle; } // STILL MOVING UP if (param.jumpRequired) { //DebugLogLocal ("jump inside=" + param.jumpRequired); if (param.jumpRequired) { DebugLogLocal("Jump DoubleJump"); newState = MovementState.DoubleJump; } } //FAll if (IsFalling(param)) { newState = MovementState.Fall; } return(newState); }
public MovementState GetNewState(MovementState previous, MovementStateParam param) { MovementState newState = previous; switch (previous) { case MovementState.Idle: newState = ManageIdle(previous, param); break; case MovementState.Run: newState = ManageRun(previous, param); break; case MovementState.Jump: newState = ManageJump(previous, param); break; case MovementState.DoubleJump: newState = ManageDoubleJump(previous, param); break; case MovementState.Fall: newState = ManageFall(previous, param); break; } return(newState); }
MovementState ManageFall(MovementState previous, MovementStateParam param) { MovementState newState = previous; DebugLogLocal("Fall manage"); //IDLE if (IsIdle(param)) { DebugLogLocal("fall idle"); newState = MovementState.Idle; } //RUN if (IsRunning(param)) { DebugLogLocal("fall run"); newState = MovementState.Run; } //DOUBLEJUMP if (IsGoingUp(param) && !param.inAirStream) { DebugLogLocal("fall run"); newState = MovementState.DoubleJump; } //PUSHUP if (IsGoingUp(param) && param.inAirStream) { DebugLogLocal("fall run"); newState = MovementState.PushUp; } return(newState); }
MovementState ManagePushUp(MovementState previous, MovementStateParam param) { MovementState newState = previous; //DebugLogLocal ("Fall manage"); //IDLE if (IsIdle(param)) { DebugLogLocal("fall idle"); newState = MovementState.Idle; } //RUN if (IsRunning(param)) { DebugLogLocal("fall run"); newState = MovementState.Run; } //FALL if (IsFalling(param)) { DebugLogLocal("fall run"); newState = MovementState.Fall; } return(newState); }
MovementState ManageJump(MovementState previous, MovementStateParam param) { MovementState newState = previous; //IDLE if (IsIdle(param)) { newState = MovementState.Idle; } // STILL MOVING UP if (IsGoingUp(param)) { if (param.jumpRequired) { newState = MovementState.DoubleJump; } else { newState = MovementState.Jump; } } //FAll if (IsFalling(param)) { newState = MovementState.Fall; } return(newState); }
MovementState ManageIdle(MovementState previous, MovementStateParam param) { MovementState newState = previous; //DebugLogLocal ("Idle manage"); //RUN if (IsRunning(param)) { DebugLogLocal("Idle run"); newState = MovementState.Run; } //JUMP if (param.jumpRequired) { DebugLogLocal("Idle jump"); newState = MovementState.Jump; } //FAll if (IsFalling(param)) { DebugLogLocal("Idle fall"); newState = MovementState.Fall; } return(newState); }
bool IsGoingUp(MovementStateParam param) { bool up = !param.grounded && param.velocity.y > step_velocity && (Mathf.Abs(param.position_before_fall.y - param.position.y) > step_position); return(up); }
bool IsFalling(MovementStateParam param) { bool fall = !param.grounded && param.velocity.y < step_velocity && (Mathf.Abs(param.position_before_fall.y - param.position.y) > step_position); return(fall); }
private void Start() { movementState = MovementState.Idle; previousMovementState = movementState; interactState = InteractState.Nothing; previousInteractState = interactState; body = GetComponent <Rigidbody>(); animBody = GetComponent <AnimatorController>(); moveStateParameters = new MovementStateParam(); moveStateCtrl = new MovementStateController(); interactStateParameter = new InteractStateParam(); InteractStateCtrl = new InteractStateController(); inputController = GetComponent <InputController>(); interactBehaviorCtrl = GetComponent <InteractBehavior>(); }
MovementState ManageFall(MovementState previous, MovementStateParam param) { MovementState newState = previous; //IDLE if (IsIdle(param)) { newState = MovementState.Idle; } if (IsRunning(param)) { newState = MovementState.Run; } return(newState); }
public MovementState GetNewState(MovementState previous, MovementStateParam param) { //DebugLogLocal ("Calling me is: " + new System.Diagnostics.StackFrame(1, true).GetMethod().Name); MovementState newState = previous; switch (previous) { case MovementState.Idle: //DebugLogLocal ("GetNewState mvt=Idle"); newState = ManageIdle(previous, param); break; case MovementState.Run: //DebugLogLocal ("GetNewState mvt=Run"); newState = ManageRun(previous, param); break; case MovementState.Jump: //DebugLogLocal ("GetNewState mvt=Jump"); newState = ManageJump(previous, param); break; case MovementState.DoubleJump: //DebugLogLocal ("GetNewState mvt=DoubleJump"); newState = ManageDoubleJump(previous, param); break; case MovementState.Fall: //DebugLogLocal ("GetNewState mvt=Fall"); newState = ManageFall(previous, param); break; case MovementState.PushUp: //DebugLogLocal ("GetNewState mvt=Fall"); newState = ManagePushUp(previous, param); break; default: //DebugLogLocal ("GetNewState mvt=Other"); break; } return(newState); }
MovementState ManageFall(MovementState previous, MovementStateParam param) { MovementState newState = previous; //DebugLogLocal ("Fall manage"); //IDLE if (IsIdle(param)) { DebugLogLocal("fall idle"); newState = MovementState.Idle; } //RUN if (IsRunning(param)) { DebugLogLocal("fall run"); newState = MovementState.Run; } //DOUBLEJUMP -> on bumper if (IsGoingUp(param) && !param.inAirStream) { DebugLogLocal("fall doublejump 1"); newState = MovementState.DoubleJump; } //PUSHUP -> in airstream else if (IsGoingUp(param) && param.inAirStream) { DebugLogLocal("fall pushup"); newState = MovementState.PushUp; } // DOUBLEJUMP -> while in fall else if (IsFalling(param) && param.jumpRequired) { DebugLogLocal("fall doublejump 2"); newState = MovementState.DoubleJump; } return(newState); }
MovementState ManageDoubleJump(MovementState previous, MovementStateParam param) { MovementState newState = previous; //IDLE if (IsIdle(param)) { newState = MovementState.Idle; } //FAll if (IsFalling(param)) { newState = MovementState.Fall; } if (IsGoingUp(param)) { newState = MovementState.DoubleJump; } return(newState); }
MovementState ManageIdle(MovementState previous, MovementStateParam param) { MovementState newState = previous; //RUN if (IsRunning(param)) { newState = MovementState.Run; } //JUMP if (IsGoingUp(param)) { newState = MovementState.Jump; } //FAll if (IsFalling(param)) { newState = MovementState.Fall; } return(newState); }
public bool IsFalling(MovementStateParam param) { bool fall = !param.grounded && (param.velocity.y < -hysteresis_step); return(fall); }
bool IsGoingUp(MovementStateParam param) { return(!param.grounded && param.velocity.y > 0); }
public bool IsGoingUp(MovementStateParam param) { bool up = !param.grounded && param.velocity.y > hysteresis_step; return(up); }
bool IsFalling(MovementStateParam param) { return(!param.grounded && param.velocity.y < 0); }
bool IsIdle(MovementStateParam param) { return(param.grounded && ((Mathf.Abs(param.velocity.x) + Mathf.Abs(param.velocity.z) + Mathf.Abs(param.velocity.y)) < 0.01f)); }
bool IsRunning(MovementStateParam param) { return(param.grounded && ((Mathf.Abs(param.velocity.x) + Mathf.Abs(param.velocity.z)) >= 0.1f)); }
bool IsRunning(MovementStateParam param) { return(param.grounded && Mathf.Abs(param.moveX) + Mathf.Abs(param.moveZ) > 0.01f /* && ((Mathf.Abs(param.velocity.x) + Mathf.Abs(param.velocity.z)) >= 0.1f)*/); }
bool IsIdle(MovementStateParam param) { return(param.grounded && Mathf.Abs(param.moveX) + Mathf.Abs(param.moveZ) <= 0.01f /*&& ((Mathf.Abs(param.velocity.x) + Mathf.Abs(param.velocity.z) + Mathf.Abs(param.velocity.y)) < 0.01f)*/); }