내일배움캠프/TIL

[내배캠][Unity6기][TIL] 꾸준 실습 2주차 Review

binary는 호남선 2024. 10. 25. 20:07

튜터님 피드백

- ObjectPool 생성 시 string name으로 각 Prefab 별로 풀 생성하도록 설계 필요

- ObjectPoolManager를 Singleton으로 만들고 관리

 

Collision Test

- Objectpool 테스트 진행하면서 신기한 현상 발견!

이상 현상 발견

- Triangle, Square, Circle 세 종류의 ObjectPool을 만들어 테스트 진행

- Triangle과 Square 정상 실행, Circle은 비정상 실행

Circle은 외부 접촉이 있어야 움직이고 있다

 

 

원인 분석

1. 당연히 내가 잘못 설정한 줄 알고 Circle 프리팹의 Collider와 RigidBody 확인

확인 결과 => 다른 프리팹과 비교하여 Sprite와 Collider 종류를 제외하고 모두 동일한 조건인 것 확인

2. 충돌하고 있고 있는 상태인지 확인

확인 결과 => Circle이 제대로 생성되며 서로 Collision 되고 있는 것 확인

움직이지는 않으나 충돌은 발생하는 상태

 

가설 : 원이라서 안 되는 것 아닐까?

튜터님의 설명

원은 충돌 외곽선(Circle Collider)에 모난 부분이 없어 서로 완전히 겹친 상태로 그 위치에 생성되고 있음

따라서 다른 외부 요인에 의해 충돌이 있을 때만 transform 틀어지며 이동하는 현상 발생할 수 있음

 

추가 실험

그렇다면 Collider에 의도적으로 모난 부분을 만들면 바로 이동하지 않을까?

 

Polygon Collider로 Collider를 약간 조정하여 실행

(왼) Circle Collider (오) Polygon Collider

 

 

원도 생성 즉시 서로 밀어내며 이동하는 것 확인!