Esempio n. 1
0
    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;
                }
            }
        }
    }