public void UpdateClimb() { if (isClimbing) { if (Input.GetButtonDown("Jump") || Input.GetAxis("Vertical") < 0) { body.isKinematic = false; currentRope.ReleaseRope(); } else if (Input.GetAxis("Vertical") > 0 && currentRope != null) { body.isKinematic = true; if (!currentRope.IsCatched()) { currentRope.CatchRope(transform.position); } Vector3 nextPosition = currentRope.GetNextPositionUp(transform.position); if (!nextPosition.Equals(Vector3.zero)) { Debug.Log(nextPosition); transform.position = Vector3.MoveTowards(transform.position, nextPosition, 3 * Time.deltaTime); } else { body.isKinematic = false; currentRope.ReleaseRope(); currentRope = null; isClimbing = false; } } } }