Menu
CoddyTech

복습: 상호작용 키

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

challenge icon

챌린지

쉬움

플레이어에게 상호작용 키를 지정하세요. 화살표 키로 플레이어를 움직이고(Mover.cs, 준비 완료), Space 키로 손이 닿는 범위 내에서 사용할 수 있는 가장 가까운 것을 사용합니다. 다음 부분을 작성하세요.

  • IInteractable: 메서드 하나가 있는 인터페이스, void Interact().
  • Door: 사용할 때마다 문이 열리거나 닫힙니다. 열릴 때는 y축을 중심으로 90도 회전하고 Door opened를 로그로 출력합니다. 닫힐 때는 반대 방향으로 회전하고 Door closed를 로그로 출력합니다.
  • Chest: 처음 사용하면 Found 5 coins를 로그로 출력하고 비웁니다(Inspector에서 설정하는 coins 값). 이후 사용할 때마다 The chest is empty를 로그로 출력합니다.
  • Lever: 사용할 때마다 bridge(Inspector에서 설정하는 GameObject이며, 시작할 때는 숨겨져 있음)를 켜거나 끄고 Lever pulled를 로그로 출력합니다.
  • 플레이어에 붙이는 Interactor: Space 키를 누르면(Input System의 Keyboard.current로 읽기), Physics.OverlapSphere를 사용해 reach(1.5) 범위 내의 콜라이더를 찾고, IInteractable을 가지고 있으며 플레이어와의 거리가 가장 가까운 콜라이더에 Interact()를 호출합니다. 손이 닿는 범위에 아무것도 없으면 아무 일도 일어나지 않습니다.

Play를 눌러 주변을 돌아다니며 모든 것을 사용한 다음 Check를 누르세요.

직접 해보기

using UnityEngine;
using UnityEngine.InputSystem;

// Space는 손이 닿는 범위에서 가장 가까운 물체를 사용합니다.
public class Interactor : MonoBehaviour
{
    public float reach = 1.5f;
}

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