• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Trigger

21.06.04 00:34 작성 조회수 19

0

삭제된 글입니다

답변 1

답변을 작성해보세요.

0

안녕하세요. 

유니티의 원리를 설명하는 것에 있어서 효빈님께서 생각하신 것과 제가 강의에서 말씀드린 내용이 제가 보기에는 같은 말인것 같은데요. 

강의에서 보니 제가 물리충돌이라는 말을 하지는 않는 것 같은데요. 이 게임에서는 물리충돌을 사용하지 않고요. 

그래서 그냥 충돌이라고 합니다. (영어로 충돌체를 콜라이더라는 용어로 사용하고 있습니다 그래서 제가 물리 충돌이라고 말씀 드린것으로 생각할 수 있습니다만 물리 충돌을 이야기 하고 있지 않습니다. 물리 충돌은 Collision 이고요. 충돌체 충돌은 Trigger 입니다. Collider 가 용어 자체가 충돌체라 조금 혼란스러울수도 있을것 같습니다)

IsKinematic 도 체크되어 있으니까요 저걸 해제한다고 말씀드리지 않았고요. 이게임에서 물리충돌을 이야기 하고 있지는 않습니다. 다 Trigger 충돌입니다. 문맥상으로 그렇게 보시면 될것 같습니다. 

결론적으로 첫번째 질문을 생각해보면 물리충돌하고 트리거 충돌하고 구분해서 생각하시면 좋을 것 같습니다.

5장의 물체의 충돌 을 한번 다시 보시는 것도 좋을 것 같습니다.

그리고 물체의 충돌(트리거)을 해야 하는데요. 이건 유니티에서 만든 조건입니다.

물체 둘중에 하나(아니면 둘다 체크)를 IsTrigger 를 체크해야 하는데 OnTriggerEnter 의 코드가 있는 부분에서 IsTrigger 를 true 로 해서 체크를 실행하고 있습니다. 그런데 반대로도 테스트를 해보면 동작합니다.

둘중에 하나가 IsTrigger 가 되어 있으면 됩니다. 그래서 저같으면 OnTrigger 함수가 있는 쪽에서 IsTrigger 를 체크하는 것을 선호합니다.

원하시면 두 곳에서 OnTriggerEnter 를 실행 하거나 반대쪽에서 체크를 실행하도록 해서 체크하는 것으로 프로그래밍을 해도 관계없습니다.

그것이 잘 동작한다면 문제가 없으니까요

그런데 한군데서만 하면 되는데 그걸 두 군데서 다 할 이유가 없을 것 같아서 저는 그렇게 하지 않은 것입니다. 

수고하세요.

Hyobin Kim님의 프로필

Hyobin Kim

질문자

2021.06.04

역시 용어 때문에 혼동이 온거네요

Collider는 옵션들이 직관적이지 않은거 같아서 다른 것들 보다 더 복작합게 느껴지네요

그래도 답변 감사합니다!