수업 5: Ellen의 성공을 위한 열쇠

확인된 버전: 2018.2.1 - 난이도: 초급

수업 5에서는 2D 게임 키트의 인벤토리 시스템(Inventory System)을 사용하는 방법에 대해 알아봅니다. Ellen이 수집할 수 있는 열쇠를 추가하고 화면에 표시되는 인벤토리에서 확인하는 방법에 대해 알아봅니다.

이 수업을 성공적으로 완료하려면 적어도 1시간 정도는 할애해야 합니다. 진행하다가 막히는 부분이 있으면 Unity에서 관리하는 2D 게임 키트 포럼(2D Game Kit Forum)에서 답변을 찾고 지원을 받아보세요.

인벤토리 시스템 사용하기

계층(Hierarchy)에서 Ellen을 선택하고 인스펙터(Inspector)에서 인벤토리 컨트롤러(Inventory Controller)를 찾을 때까지 아래로 스크롤합니다. Ellen이 수집할 수 있는 아이템이 여기에서 관리됩니다. "인벤토리 이벤트(Inventory Events)" 드롭다운을 클릭하면 Ellen이 열쇠 3개, 스텝 한 명, 총 한 자루를 수집할 수 있음을 알 수 있습니다.

이제 환경에 열쇠를 한 개 추가해 보겠습니다.

  • 프로젝트(Project) 창의 상호 작용 가능 항목(Interactables) 폴더에서 Key를 클릭한 채로 씬(Scene)에 드래그합니다.

이제 플레이를 누르면 예쁘지만 둥실 떠 있기만 하고 어떤 동작도 하지 않는 열쇠가 나타납니다. 이 열쇠를 인벤토리 아이템으로 설정하여 Ellen 인벤토리의 일부로 포함시켜야 합니다.

  • 계층(Hierarchy)에서 Key가 선택되어 있는지 확인합니다.
  • 컴포넌트 추가(Add Component)를 선택합니다.
  • "Inventory"라고 입력합니다. "인벤토리 아이템(Inventory Item)"을 선택하면 됩니다.

이제 콜라이더 크기가 너무 크게 보여집니다.

  • 인스펙터에서 서클 콜라이더 2D(Circle Collider 2D) 컴포넌트로 이동하여 반지름(Radius)을 찾아 봅니다.
  • 이 숫자를 5에서 0.5 정도로 줄여서 열쇠 크기에 잘 맞게 조정합니다.

Ellen이 열쇠가 인벤토리 아이템이라고 인식할 수 있도록 특정 식별자가 필요합니다. 계층에서 Ellen을 선택하여 다시 인벤토리 컨트롤러(Inventory Controller)를 찾아 Key1을 클릭합니다.

  • Key1에서 드롭다운 화살표를 클릭하면 식별자를 입력할 위치가 나타납니다.

씬에 있는 실제 열쇠가 Ellen에게 연결돤 인벤토리 컨트롤러의 식별자 이름과 동일해야 합니다.

  • 이름을 그대로 Key1로 유지합니다.

계층에서 다시 열쇠로 이동합니다.

  • 인벤토리 아이템 컴포넌트 "Inventory Item (Script)"로 이동합니다.
  • 인벤토리 열쇠(Inventory Key) 필드에 "Key1"을 입력합니다(대소문자 구분).

  • 레이어(Layers) 드롭다운을 선택합니다.

Ellen이 열쇠를 획득할 수 있는 유일한 캐릭터로 설정하려고 합니다.

  • 없음(Nothing)을 설정하여 옵션을 모두 초기화합니다.
  • 그런 다음 플레이어(Player)를 선택합니다.

  • 플레이를 누르면 Ellen이 열쇠를 통과하여 달립니다.

Ellen의 인벤토리에 열쇠를 연결했지만 그녀가 열쇠를 수집했다는 신호가 표시되지 않습니다. 일부 이벤트를 트리거하여 사용자에게 동작이 발생했음을 보여주어야 합니다.

음향 효과를 트리거해 보겠습니다.

  • 플레이 모드를 종료합니다.
  • 인벤토리 아이템에서 클립(Clip)을 찾아 없음(오디오 클립)(None (Audio Clip))이 지정되어 있음을 확인합니다.

  • 프로젝트 창에서 2DGameKit > 오디오(Audio) > 상호 작용 가능 항목(Interactables)으로 이동합니다.

  • 인벤토리 아이템 스크립트 컴포넌트의 빈 클립GenericPickup 파일을 드래그 앤 드롭합니다.
  • 플레이를 누릅니다.

이제 Ellen이 열쇠를 통과하여 달릴 때 사운드가 나지만 다른 어떤 동작도 발생하지는 않습니다. 이제 열쇠를 문에 연결해 보겠습니다.

  • 플레이 모드를 종료합니다.
  • 프로젝트 창에서 프리팹 > 상호 작용 가능 항목으로 이동합니다. Door을 찾아 씬으로 드래그합니다.

  • 계층에서 Ellen을 선택하고 인벤토리 컨트롤러를 확인합니다.
  • Key1 드롭다운On Add ()에 Ellen에게 발생하는 이벤트가 표시됩니다.
  • 하단의 + 기호를 클릭하여 새 이벤트를 추가합니다.

  • 방금 추가한 문(수업 3에서 "문"을 이미 한 번 추가했으므로 이름은 "Door (1)"로 예상됨)을 계층에서 빈 슬롯으로 드래그하고 오른쪽 드롭다운에서 Animator > Play (string)를 선택합니다.

  • 아래쪽에 있는 텍스트 상자에 DoorOpening을 입력합니다.
  • 플레이를 누르면 Ellen이 열쇠와 닿을 때 문이 열리는 것을 확인합니다.

열쇠를 수집했음을 좀 더 확실하게 보여줄 수 있도록 Ellen이 열쇠와 닿을 때 열쇠가 사라지게 해보겠습니다.

  • 계층에서 열쇠를 선택하면 인벤토리 아이템에서 이름이 "시작 시 비활성화(Disable on Enter)"로 지정된 체크박스가 보입니다. 이 옵션을 선택하면 Ellen이 열쇠에 닿을 때 열쇠가 사라집니다.

마지막으로 열쇠가 인벤토리 시스템에 있음을 보여줄 수 있는 UI를 추가해 보겠습니다. 열어야 할 문이 레벨 주변에서 흩어져 있어 바로 구분이 되지 않을 때 UI를 사용하면 이해하기가 훨씬 낫습니다.

  • 프로젝트 창에서 프리팹 > UIPrefabs 폴더로 이동합니다.

  • KeyCanvas를 찾아 계층-----UI----- 섹션으로 드래그하면 씬이 깔끔하게 유지됩니다.
  • 플레이를 누릅니다.

화면의 오른쪽 상단에 비어 있는 '키 슬롯(Key Slot)'이 표시되어 Ellen이 키를 수집할 때 이 슬롯 중 하나에서 키가 나타나는 애니메이션 효과가 발생합니다.

키 슬롯을 커스터마이즈하려면

  • 계층에서 KeyCanvas 프리팹을 선택하고 컴포넌트 리스트 하단에서 열쇠 UI(Key UI) 스크립트를 찾아 봅니다. 열쇠 이름(Key Names)에 3개의 요소, Key1, Key2Key3가 나타납니다.

이 열쇠는 인벤토리 컨트롤러와 연결되지만 마우스 오른쪽 버튼을 클릭하고 ‘배열 요소 삭제(Delete Array Element)'를 선택하여 열쇠 중 일부를 삭제할 수 있습니다. 이렇게 하면 UI에서 슬롯이 삭제됩니다.

  • UI에서 슬롯이 하나만 표시되도록(Ellen이 수집할 수 있는 열쇠 한 개에 매칭) 2개의 열쇠 슬롯을 삭제합니다.

이제 Ellen이 열쇠를 획득하면 사운드가 들리고, 씬에서 열쇠가 삭제되고, UI 인벤토리 슬롯에서 애니메이션 효과가 발생하고, 문이 열리게 됩니다. 와, 드디어!

물론 씬 저장을 잊지 마시고, 수업 5를 마치고 나면 아래의 동영상을 확인해 보세요!

지원되는 실시간 교육 동영상

수업 5: 인벤토리 시스템 사용하기

수업 5를 마치셨나요?

홈페이지로 이동 수업 6으로 진행