예제 #1
0
    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;
            }
        }
    }
예제 #2
0
    private void ResetTongue()
    {
        EndTongue.position = StartTongue.position;
        EndTongue.rotation = StartTongue.rotation;

        if (TongueInteractable != null)
        {
            TongueInteractable.gameObject.SetActive(false);
            TongueInteractable = null;
        }
    }