복습: 상호작용 키
Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 50개 중 9번째.
챌린지
쉬움플레이어에게 상호작용 키를 지정하세요. 화살표 키로 플레이어를 움직이고(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;
}