private void CheckTongueAction() { Collider[] hitColliders = Physics.OverlapSphere(transform.position + transform.up * 0.3f, 5f); float distance = float.MaxValue; TongueInteractable interactableCandidate = null; foreach (var other in hitColliders) { var interactable = other.GetComponent <TongueInteractable>(); if (interactable != null) { var dist = Vector3.Distance(transform.position, interactable.gameObject.transform.position); if (dist < distance) { distance = dist; interactableCandidate = interactable; } } } if (interactableCandidate != null) { TongueInteractable = interactableCandidate; switch (interactableCandidate.Type) { case TONGUE_TYPE.EAT: StartTongueEat(); break; } } }
private void ResetTongue() { EndTongue.position = StartTongue.position; EndTongue.rotation = StartTongue.rotation; if (TongueInteractable != null) { TongueInteractable.gameObject.SetActive(false); TongueInteractable = null; } }