본문 바로가기
프로그래밍/Unity

KinematicObject 계열의 캐릭터 주의점

by neive 2021. 1. 25.
728x90

유니티에서 샘플로 받을 수 있는 2D 플랫포머의 캐릭터 컨트롤러를 참고

 

하다보면 KinematicObject 라는 클래스를 참고해서 2D 게임을 만드는 경

 

우가 많을 것 같은데 

 

본인 역시 이걸 가져다가 없는 기능 2개 정도를 추가해서 사용 중 다수의

 

총알을 쏘고 맞는 게임을 제작 중 이상 동작을 하는 것을 확인.. 대략 이틀

 

정도 고민 끝에 원인을 발견.. 

 

원인은 여기서 ContactFilter2D 를 설정해서 RaycastHit2D[] 버퍼에 받는

 

과정이 문제... 일단 캐릭간 충돌, 총알과 캐릭간 충돌, 바닥 타일간 충돌

 

이 설정된 Enemy 라는 Layer를 사용했더니 다수의 탄을 맞을 때 

 

RaycastHit2D의 디폴트 버퍼 15를 탄알이 가득 채워버리는 바람에 정작

 

해야할 그라운드의 체크를 못해서 바닥에 박혀버린 것;;

 

해결법 : 따로 Layer 를 파서 그라운드 등 실체 이동에 체크해야되는 부분

만 남기고 빼서 버퍼를 가득 채울 일을 없애면 된다

728x90

'프로그래밍 > Unity' 카테고리의 다른 글

30프레임에 한번씩 미리 가비지 컬렉션  (0) 2021.02.08
Unity 네비메쉬 2D  (0) 2021.01.26
2D Lookat / Lookat2D  (0) 2021.01.21
LayerMask.NameToLayer / Equals 성능/포퍼먼스  (0) 2021.01.14
Spine Render Separator  (0) 2021.01.08

댓글