-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
Trigger
21.06.04 00:34 작성 조회수 19
0
삭제된 글입니다
답변을 작성해보세요.
0
UDevApp
지식공유자2021.06.04
안녕하세요.
유니티의 원리를 설명하는 것에 있어서 효빈님께서 생각하신 것과 제가 강의에서 말씀드린 내용이 제가 보기에는 같은 말인것 같은데요.
강의에서 보니 제가 물리충돌이라는 말을 하지는 않는 것 같은데요. 이 게임에서는 물리충돌을 사용하지 않고요.
그래서 그냥 충돌이라고 합니다. (영어로 충돌체를 콜라이더라는 용어로 사용하고 있습니다 그래서 제가 물리 충돌이라고 말씀 드린것으로 생각할 수 있습니다만 물리 충돌을 이야기 하고 있지 않습니다. 물리 충돌은 Collision 이고요. 충돌체 충돌은 Trigger 입니다. Collider 가 용어 자체가 충돌체라 조금 혼란스러울수도 있을것 같습니다)
IsKinematic 도 체크되어 있으니까요 저걸 해제한다고 말씀드리지 않았고요. 이게임에서 물리충돌을 이야기 하고 있지는 않습니다. 다 Trigger 충돌입니다. 문맥상으로 그렇게 보시면 될것 같습니다.
결론적으로 첫번째 질문을 생각해보면 물리충돌하고 트리거 충돌하고 구분해서 생각하시면 좋을 것 같습니다.
5장의 물체의 충돌 을 한번 다시 보시는 것도 좋을 것 같습니다.
그리고 물체의 충돌(트리거)을 해야 하는데요. 이건 유니티에서 만든 조건입니다.
물체 둘중에 하나(아니면 둘다 체크)를 IsTrigger 를 체크해야 하는데 OnTriggerEnter 의 코드가 있는 부분에서 IsTrigger 를 true 로 해서 체크를 실행하고 있습니다. 그런데 반대로도 테스트를 해보면 동작합니다.
둘중에 하나가 IsTrigger 가 되어 있으면 됩니다. 그래서 저같으면 OnTrigger 함수가 있는 쪽에서 IsTrigger 를 체크하는 것을 선호합니다.
원하시면 두 곳에서 OnTriggerEnter 를 실행 하거나 반대쪽에서 체크를 실행하도록 해서 체크하는 것으로 프로그래밍을 해도 관계없습니다.
그것이 잘 동작한다면 문제가 없으니까요
그런데 한군데서만 하면 되는데 그걸 두 군데서 다 할 이유가 없을 것 같아서 저는 그렇게 하지 않은 것입니다.
수고하세요.
Hyobin Kim
질문자2021.06.04
역시 용어 때문에 혼동이 온거네요
Collider는 옵션들이 직관적이지 않은거 같아서 다른 것들 보다 더 복작합게 느껴지네요
그래도 답변 감사합니다!
답변 1