개발과정에서 OnTriggerStay2D 를 이용해 일정시간 간격으로 데미지를 주는 로직을 개발하였다.
그런데 분명 Collider의 범위안에 있음에도 처음 몇초간은 함수가 작동하다가
일정 시간이 지나면 OnTriggerStay2D함수가 작동하지 않는 문제가 발생했다.
그런데 RigidBody2D 는 일정시간 움직임이 없을시 sleep 모드에 들어가고 그에 따라 감지가 되지 않았던 것이다 .
Edit > ProjectSetting > Physics2D
Never Sleep : sleep 모드에 들어가지 않지만 CPU 사용량이 증가해서 꼭 필요할 때만 사용한다.
Start Awake : 처음 시작할때 오브젝트를 sleep에서 깨운다.
Start Alssep : 잠들어 있던 오브젝트를 충돌이 일어나면 깨운다.
해결방안
1. Never Sleep으로 설정
2. 일정 주기마다 Rigidbody2D의 WakeUp() 함수 실행
'Unity' 카테고리의 다른 글
Unity2D에서 Y축에 따른 레이어 자동 조절 (0) | 2025.01.31 |
---|---|
유닛 투사체가 겹쳐있는 적 몬스터 동시 타격하는 문제 (0) | 2025.01.31 |