[내일배움캠프 4주차] Collision

하얀요니콘·2025년 7월 25일

Rigidbody를 받다보면, 충돌 처리는 OnCollision 이나 OnTrigger을 사용하면 된다는 점은 알것이다. 하지만 오늘은 다음과 같은 상황이 생겼다.

Player에게 Collision이 된 Trigger가 된 Area가 있다면 그 Area의 메서드를 실행한다. 자 그럼 플레이어에서 호출할 함수가 있는 Area는 무엇인가?

자 그러면 Player내부에서 Collide된것을 찾아야 한다는 것이다. 그럼 어떻게 처리를 할지 생각해 보았다.

  • contantfilter2D : 약간 필터링 해서 해당 내용들을 분리하는 내용이다. 다만 문제는 우리는 Tag로 분리 할 것이기 때문에, 이는 사용이 불가능하다.
  • overlapcollider : rigidbody에서 콜라이더된 배열을 가져온다. 다만 아직도 파악을 못하겠다.

그래서 다음과 같은 방식을 사용하였다.

Player내부에 Area를 만들어주고, 이 Area가 null이 아니라면 function을 실행한다.
반면 Area내부에서는 OnTriggerEnter에서 Playertag를 확인하고, 그렇다면 Area에 해당값을 넣어준다. 반대로 OnTriggerExit은 해당 Area를 null로 바꿔주면 된다.

생각보다 간단한건데 이제보니 너무 복잡하게 구현을 한거 같다. 생각하고 돌아가다보면 금방 될 것 같다.

profile
코딩공부용

0개의 댓글