/// <summary> /// /// </summary> void OnClimbing() { if (m_Ladder.HasPending) { if (!MoveToStarted) { StartCoroutine(MoveTo(m_Ladder.GetCurrent, false)); } } else { desiredMove = m_Ladder.transform.rotation * Vector3.forward * m_Input.y; m_MoveDir.y = desiredMove.y * m_ClimbSpeed; m_MoveDir.x = desiredMove.x * m_ClimbSpeed; m_MoveDir.z = desiredMove.z * m_ClimbSpeed; if (Input.GetKeyDown(KeyCode.Space)) { ToggleClimbing(); m_Ladder.JumpOut(); m_MoveDir.y = m_JumpSpeed; m_MoveDir.z = 30; lastJumpTime = Time.time; } m_CollisionFlags = m_CharacterController.Move(m_MoveDir * Time.fixedDeltaTime); } }