Exemple #1
0
    private void Use()
    {
        RaycastHit hit;
        IUseable   useable;
        IGrabbable grabbable;
        Ladder     ladder;

        if (Physics.SphereCast(cam.transform.position, useSphereCastRadius, cam.transform.forward, out hit, useRange))
        {
            useable   = hit.collider.gameObject.GetComponent <IUseable>();
            grabbable = hit.collider.gameObject.GetComponent <IGrabbable>();
            ladder    = hit.collider.gameObject.GetComponent <Ladder>();
            if (useable != null)
            {
                useable.Use();
            }
            if (grabbable != null)
            {
                grabbable.Grab(grabPosition);
                Grab(grabbable);
            }
            if (ladder != null)
            {
                ladderData = ladder.LadderData;
                MountLadder();
            }
        }
        Debug.DrawRay(cam.transform.position, cam.transform.forward * useRange, Color.red, .5f);
    }
Exemple #2
0
 private void UnmountLadder()
 {
     isClimbingLadder = false;
     ladderData       = null;
 }