๋ฐ์์ ๋๊ฐ ์ปจํธ๋กค๋ฌ ๋ถ์ฌ์ isGround๋ก ๋ฐ๋ฅ ์ธก์ ํ๋ผ๋๋ฐ
์บ๋ฆญํฐ์ปจํธ๋กค๋ฌ ์ปดํฌ๋ํธ๋ก ์๋๊ฑฐ ๊ฐ๋ค์ธ๋ผ๋๊น
๋ฐ๋ฅ์ด ์ธ์์ด ์๋๋๋ผ
์ฌ๊ธฐ์ ๊ธฐ ์ฐพ์๋ณด๋๊นย 2d์์๋ tilemap์ด๋ ์ถฉ๋ํ์ ์๋๋ค๊ณ
์ธ๊ฑฐ๋ฉด 2d ์ ์ฉ์ผ๋ก ๋ฐ๋ก ๋ง๋ค์ด์ผ๋๋ค๋๊ฑฐ๊ฐ๋๋ฐ
๋ด๊ฐ ๋์ฐพ์๋ด์๊ทธ๋ฐ๊ฐ
์๋๋๊ฑฐ์๋๋ ์ด๊ฑฐ
Collider์ถฉ๋ ๊ฐ์งํ๋ ค๋ฉด ๋์ค ํ๋์ rigidbody๋ Non-kinematic์ด์ด์ผ๋ง ํจ
๋๊ฐ ๋์ฐพ์๋ณธ๊ฑฐ์
Character Controller ์ปดํฌ๋ํธ ๊ฐ๋ค์ฐ๋ฉด ์บ๋ฆญํฐ์๋ rigidbody ์์ ์ผ๋๋๋ฐ rigidbody๊ฐ ์ 2๊ฐ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ๊ณ tilemap์ ๋ถ์ด์๋ rigidbody๋ static์ผ๋ก ๋ฐ๊ฟจ์์
TilemapCollider2D๋ผ๊ณ ์ ์ฉ ์ฝ๋ผ์ด๋ ์๊ณ , CompositeCollider ๊น์ง๋ถ์ด๊ณ TilemapCollider์์ Used by Cmposite ์ฒดํฌํ๋ฉด ํ๋์ฒ๋ผ ๋ ๊บผ์
๋๋ค rigid๋ถ์ผํ์์๊ณ ํ์ชฝ์ Non-kinematic์ธ rigidbody๊ฐ ํ๋์์ด์ผํจ. ๋ฐ๋ฅ์ rigidbody๋ฅผ๋ถ์ด๊ณ static์ผ๋ก ์ค์ ํด
ใ ใ ๊ทธ๊ฑฐ 2๊ฐ๋ถ์ด๊ณ ์ฒดํฌ๊น์ง ํด์ ํ๋๋ก ๋ง๋ค์ด์ง ์ํ์์ด ๊ทผ๋ฐ ์บ๋ฆญํฐ์์ rigidbody๋ colider ๋ง๋ค์ด๋๊ฑฐ ์ญ์ ํ๊ณ Character Controller์์ ๋ง๋ค์ด์ฃผ๋ colider๋ก๋ ์๋ก ์ถฉ๋ํ์ ์ด ์๋์ ๊ทธ๋ฅ ๋ฐ๋ฅ ๋ซ๊ณ ๋ด๋ ค๊ฐ๋ฒ๋ฆฐ๋ค๋๊ฒ ์ง๋ฌธ์ด์์ก
๋ด๊ฐ ์ฐ๋๋ฐฉ๋ฒ ์๋ ค์ค๊ฒ CpsuleCollider2d๋ Rigidbody2d๋ฃ๊ณ FreezeRotation z์ ์ฒดํฌ Physics2D.Raycast(transfrom.positio, Vector2.down, ํฌ๊ธฐ๋งํผ, ๋ ์ด์ด๋ง์คํฌ ์์ผ๋ฉด ์ฐ๊ณ ) Debug.DrawRay(transfomr.position, Vector2.down * ํฌ๊ธฐ, Color.green)
Raycast ๋ฆฌํด๋๋๊ฑฐ RaycastHit2D hit ์ผ๋ก ๋ฐ๊ณ if (hit.collier != null ) { isGround = true}
CharacterController๋ ๋นผ๊ณ
CharacterController๋ 3d์ ์ฉ์ด๋ผ๋๋ผ ๊ทธ๋ฅ ์ด๋ ๊ฒ ์ฒดํฌํด๋ผ
๊ทธ๋ฆฌ๊ณ ๋์ผ๋ฆญํฐ๊ฐ ๋ซ๊ณ ์ง๋๊ฐ๋ค๋๊ฑด ๋ฒฝ์ด ์๊ณ , ๋ฌผ์ฒด๊ฐ ๋น ๋ฅด๊ฒ ์ง๋๊ฐ์ ์ฝ๋ฆฌ์ ผ ์ฒดํฌํ๊ธฐ์ ์ ๋น ์ ธ๋๊ฐ๋ค๋๊ฑด๋ฐ rigidbody์์ Collisoin detection์ Continuous๋ก ์ค์ ํ๋ฉด ๋ํ ํ ํ๋ ์ฃผ๊ธฐ๊ฐ ๋นจ๋ผ์ ธ์ ๊ทธ๋ฐํ์ ์ค์ด๋ค๊ฑฐ์