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); }
private void UnmountLadder() { isClimbingLadder = false; ladderData = null; }