1 개의 강의

목차

Trigger 조건 추가하기

Allegro Kingdom에는 다양한 나무 상자와 통이 있으며 각 상자나 통이 부서질 때 Coin을 스폰시킬 수가 있습니다. Coin이 인스턴스화(instantiate)되면 바닥에 떨어지면서 모험가가 주울 수 있습니다. 모험가가 Coin을 통과해 지나가서 Coin을 줍게 되면 Pickup_Coin Event가 재생됩니다. 이 Event를 트리거하려면 AkEvent 스크립트를 사용해야 합니다. 스크립트를 사용하기 위해서는 다음 단계를 실행해야 합니다.

  1. Unity 메뉴에서 Audiokinetic > Certification > 301 > Lesson 1 > Trigger Conditions를 선택하세요.

    Wwise Adventure Game 프로젝트의 Assets 폴더에서 301_Coin를 찾아 추가해봅시다.

  2. Project 뷰에서 '301 Coin'을 검색하세요.

  3. 301_Coin 게임 오브젝트를 Scene 뷰로 드래그하세요.

  4. Move 도구 ('W')를 사용해서 301_Coin을 Training Area의 바닥에 놓으세요.

    Coin 게임 오브젝트의 초록색 Trigger가 Player와 겹치지 않도록 주의하세요.

    [참고]

    Collider/Trigger란 무엇일까요? Unity에서는 게임 오브젝트 간의 상호작용을 감지하기 위해 Collider를 사용합니다. Collider에는 여러가지 종류가 있으며 (Box, Sphere, Capsule 등) 주로 오브젝트 Mesh(모양)의 물리적 형태를 정의하여 교차하지 않도록 하는 데에 사용됩니다. Trigger는 충돌을 감지하는 Collider이며 다른 Collider가 통과할 수 있습니다. Collider는 (바위가 평평한 폴리곤 표면으로 그려지는 것처럼) Mesh의 모양을 그리지 않지만 보이지 않게 메쉬를 사용해서 Collider의 크기와 모양을 정의합니다.

    지금은 플레이어가 Sphere Trigger와 겹칠 경우 Scene을 시작하자마자 동전이 자동으로 수집됩니다. 이렇게 하지 않고 우리는 플레이어가 동전을 가서 직접 줍도록 하고자 합니다. 그래서 플레이어가 Is Trigger 로 설정된 Sphere Collider 안으로 들어가면 사운드가 활성화되도록 하는거죠. 위의 이미지처럼 구의 경계선이 보이지 않을 경우 Inspector에서 Sphere Collider 컴포넌트가 열려있는지 확인하세요. 이름을 클릭해서 펼치세요.

    [참고]

    사실상 Trigger는 Is Trigger로 설정된 Collider와 같지만 저희는 이것을 Trigger라고 부르겠습니다.

    이제 301_Coin 게임 오브젝트에 사운드를 추가해봅시다. 하지만 이번에는 Wwise Picker를 사용하지 않고 미리 작성된 스크립트를 직접 찾아서 추가하는 방법을 배워봅시다. 자격증 과정을 진행하면서 여러분이 이 방법을 사용하실 수 있길 바랍니다.

  5. Inspector에서 Add Component를 선택하세요.

  6. 'AkEvent'를 검색하여 선택하세요.

  7. Event Name 프로퍼티에서 Events > Player > General을 펼치고 Pickup_Coins를 더블 클릭하세요.

    게임이 시작되면 이제 Pickup_Coin Event가 301_Coin 게임 오브젝트를 참조하여 게시됩니다. 다음으로 이 Event를 트리거하는 방법을 지정해야 합니다. 301_Coin 게임 오브젝트에는 Trigger로 지정된 Sphere Collider가 있습니다. AkEvent > Trigger On 프로퍼티를 보면 사운드를 트리거하는 가장 흔한 방법으로 설정되어 있습니다. Sphere Trigger로 들어갈 때 Pickup_Coin Event를 트리거하려면 AkTriggerEnter 옵션을 사용해야 합니다. Trigger On 프로퍼티가 Start로 설정된 것이 보이실 것입니다. 선택되어 있던 모든 조건을 해제하고 AkTriggerEnter만 선택되도록 변경하려면 먼저 Nothing을 선택한 후 AkTriggerEnter를 선택해야 합니다.

  8. Trigger On 프로퍼티에서 Nothing을 선택하세요.

  9. 다시 열어서 AkTriggerEnter를 선택하세요.

  10. Play를 클릭하고 Coin 안으로 지나가보세요.

    Pickup_Coin이 여러 번 게시된 것이 보이시나요? AkEvent 컴포넌트를 알맞게 설정하긴 했지만 새로운 문제가 있습니다. Trigger가 자신의 영역에 들어오는 모든 게임 오브젝트에 반응하고 있는 것입니다. 게임을 시작할 때 Trigger는 먼저 바닥 자체를 감지하여 이벤트를 게시하게 됩니다. 그런 다음 플레이어가 Trigger 안으로 들어오면 또 이벤트가 게시되는 거죠.