midas+son의 크리에이티브(creative) 이야기

유니티의 하나의 오브젝트에서

Collider에 Is Trigger를 체크 하면

물리적 충돌이 비물리적 충돌을 체크 할 수 있게 된다.

 

스크립트 상에서 

void OnTriggerEnter(Collider other) 

void OnTriggerStay(Collider other)

void OnTriggerExit(Collider other)

등의 이벤트 함수를 적용 할수 있다.


여기에도 문제가 하나 있다.


하나의 오브젝트에서

Collider를 여러가지 가질 수 있고

Trigger도 여러개 가질 수 있지만

스크립트 상의 이벤트 함수는

공용으로 사용을 한다는 것이다.


하지만 게임을 만들다 보면

Trigger마다 각각 체크하여 

동작을 다르게 해야 할 때가 있다.


이럴 때에는 어떻게 해야 하는가?


해당 오브젝트의 자식으로 Empty 오브젝트를 만들고

그 자식 Empty 오브젝트에 Collider를 달아 trigger로 만든후

OnTrigger 함수만 따로 스크립트로 작성하여 적용하는 것이다.


즉 Trigger 가 2개 이상 필요 하다면

Empty오브젝트로 자식을 만들어

각각 나누어서 적용시키면 된다.

어렵게 고민하지 말고 위처럼 쉽게 생각하여 적용하자.

'공부 > Unity' 카테고리의 다른 글

AudioSource 다중 사용  (0) 2016.06.03
GetComponent<T>() 사용에 대해  (0) 2016.06.02
splat map  (0) 2016.05.30
[잡담]유니티에서 구현하는 2D에 관련하여  (0) 2016.05.27
Ctrl + Shift + f  (0) 2016.05.25