Menu
CoddyTech

복습: 가장 가까운 상호작용 대상

Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 64개 중 11번째.

이 장에서는 인터페이스를 사용해 메서드 하나만 공유하는 서로 아무런 공통점이 없는 대상들과도 하나의 스크립트가 작동하도록 했습니다. 이제 상호작용 키를 누르면 그중 가장 가까운 대상을 선택합니다.

challenge icon

챌린지

쉬움

스페이스 키를 누르면 첫 번째 대상이 아니라 가장 가까운 대상을 사용해야 합니다.

  1. Interactor에서 반복문 앞에 IInteractable nearest = null;과 float best = Mathf.Infinity;를 추가하세요.
  2. 반복문에서 플레이어와의 Vector3.Distance가 best보다 작은 대상과 그 거리를 저장하세요.
  3. 반복문이 끝난 후 nearest가 null이 아니면 nearest.Interact()를 호출하세요.

‘플레이’를 누르고, 상자와 레버 사이에 선 다음 스페이스 키를 누르세요. 레버가 당겨집니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

using UnityEngine;
using UnityEngine.InputSystem;

// Space를 누르면 닿을 수 있는 범위 내의 첫 번째 대상과 상호작용합니다.
public class Interactor : MonoBehaviour
{
    public float reach = 1.5f;

    void Update()
    {
        if (Keyboard.current.spaceKey.wasPressedThisFrame)
        {
            foreach (Collider c in Physics.OverlapSphere(transform.position, reach))
            {
                if (c.TryGetComponent(out IInteractable thing))
                {
                    thing.Interact();
                    return;
                }
            }
        }
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Unity 게임 아키텍처의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드