8
UNITY COOKBOOK SHOT BY. INS PART 8 방방방방 방방방방

Unity cookbook 8

Embed Size (px)

Citation preview

UNITY COOKBOOKSHOT BY. INS

PART 8방아쇠를 당겨보자

Trigger ( 방아쇠 )

일반적으로 물체와 물체간의 즉 , Collider 와 Collider 간의 충돌은 유니티 콜백 함수인 ‘ OnCollisionEnter’ 가 있습니다 .하지만 결과는 충돌체 끼리의 표면에서 판정되는 것이고 어떠한 공간에서의 내부적 침입 판정은 불가합니다 .이에 유니티에서는 Trigger 이라는 기능이 존재하는 것이죠 .Trigger 기능은 오로지 충돌 감지만을 위해 서로 부딪히는 물리 작용이 들어가있지 않는 것이 특징입니다 .

( 1 / 6 )

나도 방아쇠 당겨볼래 #1

사용 방법은 간단합니다 .이벤트를 발생시킬 객체 Collider 에 ‘ Is Trigger’ 이라는 체크표시만 주면 활성화 됩니다 .다만 , 앞서 말했듯이 물리 작용의 역할을 할 수 없고 , 오로지 충돌 판정만 확인할 수 있습니다 .

( 2 / 6 )

# Trigger OFF # Trigger ON

나도 방아쇠 당겨볼래 #2

Trigger 의 콜백함수를 살펴봅시다 .‘OnCollisionEnter’ 처럼 트리거가 작동됐을 때 해당 3 개의 콜백함수를 작동시킵니다 .‘Enter’ 는 들어왔을 때 , ‘Stay’ 는 들어오고 유지될 때 , ‘Exit’ 는 나갈때의 콜백함수를 받습니다 .하지만 , ‘OnTriggerStay’ 같은 경우 유니티 구조상 비용이 많이 들어 잘 쓰지않는 편입니다 .

( 3 / 6 )

- 내부충돌 - - 표면충돌 -

나도 방아쇠 당겨볼래 #3

예시로 아래 스크립트를 작성해봅시다 .Trigger 를 활성화 시킬 판넬과 그 위로 떨어뜨릴 객체 20 개 정도를 만들고 스크립트를 판넬에 붙여봅니다 .그렇다면 떨어지는 객체는 충돌 할 때는 ‘ Obj’ 에 빈 곳을 찾아 담기지만 , 아닐 때는 지워질 것입니다 .

( 4 / 6 )

나도 방아쇠 당겨볼래 #4

실제로 플레이를 해 보면 객체가 닿는 순간엔 판넬에 붙여놓은 스크립트에 객체가 추가되는데나갈 땐 그 자리가 비어있는 것을 확인할 수 있습니다 .이러하듯 ‘ Trigger’ 는 캐릭터가 트리거를 밟아 이벤트를 실행하는 용도로 자주 쓰이는 편입니다 .

( 5 / 6 )

# 들어왔다 나가는 객체

나도 방아쇠 당겨볼래 #5

마지막으로 트리거에 대해서 응용을 해보겠습니다 .떨어지는 객체마다 위 스크립트를 추가하고 , 판델에 ‘ SendMessage’ 라는 문구를 추가합니다 .이는 해당 스크립트에 직접 접근이 가능은 함수입니다 . 즉 , 객체가 트리거에 있는 순간 떨어지는 객체는 체력이 점점 깎여나가게 됩니다 .이상 트리거에 대해 자세하게 알아보았습니다 .

( 6 / 6 )

# 판넬 Script # 떨어지는 객체 Script

Thank You !