void GiveUpLadder() { movementState = e_MovementState.Standing; R.isKinematic = false; R.useGravity = true; currentLadder = null; }
void ActualizeState() { if (Dashing && (movementState & (e_MovementState.DashingBackward | e_MovementState.DashingForward | e_MovementState.DashingRight | e_MovementState.DashingLeft)) == 0) { Vector3 vector = CamPivot.InverseTransformDirection(MoveDirection); if (vector.z >= Mathf.Abs(vector.x)) { movementState = e_MovementState.DashingForward; } else if (vector.z <= -Mathf.Abs(vector.x)) { movementState = e_MovementState.DashingBackward; } else if (vector.x > Mathf.Abs(vector.z)) { movementState = e_MovementState.DashingRight; } else { movementState = e_MovementState.DashingLeft; } } else if (Grounded) { if (moveVector.sqrMagnitude == 0) { movementState = e_MovementState.Standing; } else if (moveInput.y >= Mathf.Abs(moveInput.x)) { movementState = Sprinting ? e_MovementState.SprintingForward : moveInput.sqrMagnitude < 1f ? e_MovementState.WalkForward : e_MovementState.RunForward; } else if (moveInput.y <= -Mathf.Abs(moveInput.x)) { movementState = Sprinting ? e_MovementState.SprintingBackward : moveInput.sqrMagnitude < 1f ? e_MovementState.WalkBackward : e_MovementState.RunBackward; } else if (moveInput.x > Mathf.Abs(moveInput.y)) { movementState = Sprinting ? e_MovementState.SprintingRight : moveInput.sqrMagnitude < 1f ? e_MovementState.WalkRight : e_MovementState.RunRight; } else { movementState = Sprinting ? e_MovementState.SprintingLeft : moveInput.sqrMagnitude < 1f ? e_MovementState.WalkLeft : e_MovementState.RunLeft; } } else { movementState = e_MovementState.InAir; } }
void OnLadderEnter(Ladder ladder) { movementState = e_MovementState.Climbing; R.isKinematic = true; R.useGravity = false; R.velocity = Vector3.zero; currentLadder = ladder; //If we are in the precise case where you walk straight a ladder from above it, you wont go up where you came from automatically. if (CurrentLadder.TestHeight(BodyColl.transform.position.y - upLadderMaxHeightOffset) == true) { waitForwardRelease = true; } Debug.Log(CurrentLadder.TestHeight(BodyColl.transform.position.y - upLadderMaxHeightOffset)); }