์ ๋ํฐ๋ก 3d ์ก์ ๊ฒ์ ๊ฐ๋ฐ์ค์ธ๋ฐ ๋น์ฃผ์ผ๋ง 3d๊ณ ๋์๊ฐ๋ ๋ฐฉ์์ ์ฌ์ค์ 2d์
(ํ๋ทฐ ์์ , X Z ์ถ๋ง ์ฌ์ฉ)
๋ฌผ๋ฆฌํจ๊ณผ๋ผ๊ณ ํด๋ด์ผ ์คํฌ ๋ง์ผ๋ฉดย ๋ฐ์ด๋ด๊ฑฐ๋ ๋ฒฝ๊ฟย ๊ฐ์๊ฑฐ๋ฅผย ๊ตฌํํด๋ณด๋ ค ํ๋๋ฐ
์ ๋ํฐ ๊ธฐ๋ณธ ๋ฌผ๋ฆฌ์์ง์ผ๋ก ์ํ๋ ํจ๊ณผ ๋์ค๋๋ก ์ฌ์ธํ๊ฒ ์กฐ์ ํด์ ์ฌ์ฉํ๊ธฐ๋ ๊น๋ค๋กญ๊ณ
๋ด๊ฐ ์ํ๋ ์์ํ ๋๋น ์ฑ๋ฅ์ด ๊ณผ๋ํ ๋๋๋๋์
์ง์ ๊ฐ๋ฐํด๋ณด๋ ค๋๋ฐ ์ด๋ค ๋ฐฉํฅ์ผ๋ก ํด์ผํจ?
collider์ is trigger ์ค์ ํด์ ์ ์ด ํ์ ๋ง ์ ๋ํฐํํ ๋งก๊ธฐ๊ณ
๊ทธ์ ๋ฐ๋ฅธ ๋ฌผ๋ฆฌ์ ์ธ ํ์ฒ๋ฆฌ๋ ๋ค ๋ด๊ฐ ์ง์ ํด๋ณด๋ ค๋๋ฐ
๋ค๋ฅธ ์ข์๋ฐฉ๋ฒ ๋ญ์์?
2d๋ฌผ๋ฆฌ ์ง์ ๊ตฌํํด์ ์ฐ๊ณ ์์ QuadTree๋ก Broadphase collisionํ๊ณ ์ฝ๋ผ์ด๋๋ AABB๋ Circle๋ง ๊ตฌํํจ. ๋ง์ฐฐ์ด๋ ํ์ฑ๊ณ์๋ ์์ง๋ ์์.. ์์ํ๊ฒ ์ถฉ๋์ฒดํฌ๋ฐ ๊ฒน์นจ๋ฐฉ์ง์ฉ์ผ๋ก ๋ง๋๋ฟ์ Lockstep๋๊ธฐํ ํ๋ ค๊ณ ์ ๋ํฐ๋ฌผ๋ฆฌ๋ชป์จ์ ์ง์ ๊ตฌํํจ. ์ง๊ธ๊น์ง์์ฐ๊ณ ์์.
์ ์ถฉ๋๊ฐ์ง ๊น์ง ์ง์ ๋ค ํ๊ฑฐ์?
๋ฌผ๋ฆฌ์์ง์์ ์ถ๋๊ฐ์ง๊ฐ ์ ค ๊ธฐ์ด์ ์ธ ๊ฑฐ์. CirclevsCircle์ ๋์ ์ฌ์ด ๊ฑฐ๋ฆฌ๊ฐ ๋์ ๋ฐ์ง๋ฆ๋ณด๋ค ์์ผ๋ฉด ์ถฉ๋์ด๊ณ , AABBvsAABB๋ ๋ญ ๊ทธ๋ฅ left right up down ๊ฒน์น๋์ง์ฒดํฌ, AABBvsCircle์ ๋ญ ์์. ๋๋ ์ด๋์ ๊ธ์ด๋ค์ผ๋๋... ์ถฉ๋๊ฐ์ง๋ณด๋ค ๊ณจ๋๋ฆฌ๋๊ฒ Resolution์ด๋ผ๊ณ , ๊ฒน์น๋์ง ์ฒดํฌํ๋ค๋ฉด ๊ทธ๋ผ ์๋ก ์๊ฒน์น ์ํ๋ก ๋ง๋ค์ด์ฃผ๋ ๋จ๊ณ์. ์ด๊ฑด ๋ญ ๋ฐฉ๋ฒ์ด ๋ฌด๊ถ๋ฌด์งํด์... ๊ทธ๋ฆฌ๊ณ ๊ฒน์ณค์๋ ๋ ๋ฌผ์ฒด์ ์๋๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง๋ ๋ฌธ์ ๊ณ .. ์ํผ ์ถฉ๋๊ฐ์ง๋ ์ด๋ ต์ง์์
Broadphase collision ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ญ๊ฐ์ฌ
์ถฉ๋๊ฒ์ฌ๋ฅผ ์ํด์๋ BroadPhase์ NarrowPhase๊ฐ ์์. Broad(๊ด๋ฒ์) Narrow(์ข์) ๋ฌผ์ฒด๊ฐ 10๊ฐ๊ฐ ์๊ณ 10๊ฐ๊ฐ ์๋ก ๊ฒน์น์ง ์๋ ์ฐ์ฐ์ ํ๋ ค๋ฉด ๊ฑฐ๋ฆฌ์ฒดํน์ 10x10 = 100๋ฒ์ ํด์ผํจ. 100๊ฐ๋ผ๋ฉด 100x100 = ๋ง๋ฒ๊ฒ์ฌํด์ผํ๊ณ . ์ด๊ฑด ๋นํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์. QuadTree๋ผ๋ ๊ณต๊ฐ๋ถํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก 100๊ฐ์ ๋ฌผ์ฒด๋ฅผ ํธ๋ฆฌํํ์ ์๋ฃ๊ตฌ์กฐ๋ก ๋ถํ ์ ํด๋์. ๊ณต๊ฐ์ ๋๋์ด ๋์๊ธฐ ๋๋ฌธ์, ๊ฐ์๊ณต๊ฐ์ ์๋์ง ์ฒดํฌํ๋๊ฒ์ Broadphase(๊ด๋ฒ์) Collision์ด๋ผ๊ณ ํจ. ๊ฐ์๊ณต๊ฐ์ ์ฐพ์๋ค๋ฉด, ๊ทธ ๊ณต๊ฐ์ ์๋ ๋ฌผ์ฒด๋ค๋ผ๋ฆฌ๋ง ์ค์ ์ถฉ๋๊ฒ์ฌ๋ฅผ ํ๋ฉด๋จ. ์ด๊ฑธ Narrow Collision Check๋ผ๊ณ ํ๊ณ .
Broadphase Collision์ด๋ผ๊ณ ๊ฒ์์ ํด๋ด. ๊ทธ๋ผ QuadTree๋ BinarySpacePartitioning(BSP:์ด์ง๊ณต๊ฐ๋ถํ ) Octree ๋ฑ๋ฑ ๋ง์ด ๋์ฌ๊ฑฐ์. ์ค์ ๋ก BSP๋ ์๋ ๋ ์์๋ ์ผ๋ ๋ฐฉ์์. QuadTree๋ 2์ฐจ์์์ ์ฐ๊ณ Octree๋ 3์ฐจ์์์ ์ฐ๊ณ .
์กฐ๋ธ์ด๋ ต๋ค
๋ด์๊ฐ์ 2d๋ 3d๋ ์๊ด์์ด ๊ฒ์ ๊ฐ๋ฐํ๋ค๋ณด๋ฉด rigidbody isKinematic ๋ค ๋๊ฒ ๋์์ ๊ณต์ค์์ ๋ฐฉํฅํค๋๋ฅด๋ฉด ์์ง์ผ์ ์๊ฒ ํ๋ค๋๊ฐ ๊ฒ์์ค๋ฌ์ด ๋ฌผ๋ฆฌ ๊ตฌํํด์ผ๋ ๋๊ฐ ๋ง์ ๊ฒฐ๊ตญ ์ค๋ ฅ๋ถํฐ ์์ํด์ ๋ค velocity๋ deltatime๊ฐ์ง๊ณ ์๊ธฐ๊ฐ ์ง์ ์ปค์คํ ํ๊ฒ ๋๋๋ผ
๋๋๊ฒ์๋๋ผ ํค๊ฒ๋์๋๊ฑฐ ใ ใ
์ญ์ ๊ฐ๋ฐ์๋ ๋ฌ๋ผ ์ฝ
์์ ๊ฒ์ด๋ ์ง์ง๋ก ๋ฌผ๋ฆฌ์์ง์ ๋ค์ ๋ง๋ค์๋ค๊ณ ํ ์์๋๋ฐ, ์ ๋ํฐ ๋ฆฌ์ง๋๋ฐ๋+์ฝ๋ผ์ด๋ ์ฐ๋ฉด์ ์์ง์ ์กฐ์ ํ๋๊ฑฐ๋ ๊ทธ๋ฅ ๋ชจ๋ ๊ฒ์์ด ํ๊ณ ์๋๊ฑฐ์