-
[Unity] Layer Collision Matrix 적용 안될 때Dev/Unity 2025. 1. 23. 18:16
Player 피격 이벤트 구현 시 Player와 Enemy의 Layer Collision Matrix를 체크 해제 해도 충돌이 발생하는 경우가 있다.
문제 원인
Player에 있는 Platform Effecter 2D의 "Use Collider Mask" 옵션이 켜져 있으면 Layer Collision Matrix와 독립적으로 작동하며, 충돌 레이어를 직접 제어할 수 있기 때문에 예상치 못한 충돌이 발생할 수 있다.
Platform Effector 2D와 Use Collider Mask
- Platform Effector 2D는 특정 물리적인 동작을 제어하는 컴포넌트로, 일반적으로 "일방 통행 플랫폼"을 구현할 때 사용된다.
- 예: 아래에서 위로는 통과 가능하지만, 위에서 아래로는 충돌하는 플랫폼.
- Use Collider Mask 옵션은 Platform Effector 2D가 충돌 계산에 사용할 레이어를 명시적으로 설정하도록 한다.
- 이 옵션을 활성화하면 Physics 2D Layer Collision Matrix 설정과는 별개로, Collider 자체의 Layer Mask가 충돌에 영향을 준다.
- 즉, Layer Collision Matrix에서 충돌이 비활성화되었더라도, Use Collider Mask에서 충돌할 수 있는 레이어로 설정되어 있다면 충돌 이벤트가 발생한다.
해결 방법
Platform Effector 2D를 사용 중이라면 Use Collider Mask 비활성화하고, Use Collider Mask를 꼭 사용해야 한다면, Collider Mask에서 Enemy 레이어를 명시적으로 제외해야 한다.
'Dev > Unity' 카테고리의 다른 글
[Unity] 벽 관통 문제 (0) 2025.02.12 [Unity] 플레이어 자동 회전 문제 (0) 2025.02.12 [Unity] 플랫포머에서 캐릭터 끼임 문제 (0) 2025.01.23 [Unity] 캐릭터가 벽에 붙는 현상 (0) 2025.01.23 [Unity] 스프라이트 시트(아틀라스)를 사용하는 이유 (1) 2025.01.17 - Platform Effector 2D는 특정 물리적인 동작을 제어하는 컴포넌트로, 일반적으로 "일방 통행 플랫폼"을 구현할 때 사용된다.