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 |
댓글