[Charon] #3. RigidBody๋ฅผ ์ฌ์ฉํ 3D ์บ๋ฆญํฐ์ ๊ฒฝ์ฌ๋ก(Slope) ์งํ ์ด๋ ๊ตฌํํ๊ธฐ์ค๋๋ง์ ๋ค์ ํฌ์คํ
์ ์ฌ๋ฆฌ๋ค์. ๊ทธ๋์ ๋ค๋ฅธ ๊ต์ก ํ๋ก๊ทธ๋จ์ ๋ฃ๋๋ค๊ณ ๋ฐ๋น ์ ์นด๋ก ๊ฐ๋ฐ์ ๋ชป ํ์ต๋๋ค. FPS ๊ฒ์ ๊ฐ๋ฐ์ ์ฒ์ ์งํํด๋ดค๋๋ฐ, ์ด๋ฆด ๋ ์นด์ดํฐ์คํธ๋ผ์ดํฌ ์จ๋ผ์ธ ์ข๋น ์๋๋ฆฌ์ค ๋ชจ๋๋ฅผ ์ข์ํ๋ ๊ธฐ์ต์ ๋์ด๋ ค ์ฌ๋ฏธ์๊ฒ ๋ง๋ค์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋์ค์ ๊ธฐํ์ ์ ๋๋ก ํด์ ์ฌ์ด๋ ํ๋ก์ ํธ๋ก ํ๋ ์งํํด๋ณด๊ณ ์ถ๋ค์. ๋ฉํฐ ํ๋ ์ด๋ ๋๋ค๋ฉด ๊ธ์์ฒจํ๊ฒ ์ง๋ง ๊ทธ๊ฑฐ๊น์ง ํ๋ ค๋ฉด ๊ฐ ๊ธธ์ด ๊ต์ฅํ ๋ฉ ๊ฒ ๊ฐ์ต๋๋ค.ใ
ใ
ใ
... ์ก๋ด์ ์ฌ๊ธฐ๊น์ง ํ๋๋ก ํ๊ณ , ์ ๋ฒ ๊ธ์์๋ ์ด๋ ์ ๋๋ฉ์ด์
์ฑํฌ ๋ง์ถ๋ ๊ฒ๊น์ง ํ์์ฃ ? ํ์ง์์๋ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์์ง๋ง ๊ณ๋จ๊ณผ ๊ฐ์ ๊ฒฝ์ฌ ์งํ์ธ ๊ฒฝ์ฐ์๋ ์๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ต๋๋ค. ๊ทธ๋์ ์์ ๋ด์ผํ ๋ด์ฉ๋ค์ด ์ข ๊ต์ฅํ ๋ง์์ด์. ๊ทธ๋๋ ํ๋ํ๋ ์ฐพ์๋ณด๋ฉฐ ๊ณต๋ถํ๊ธฐ์ ๋๋ฆ ์๋ฏธ์๋ ์๊ฐ..daekyoulibrary.tistory.com
์ด ์ฌ์ดํธ์ ์๋ Raycast๋ฅผ ์ด์ฉํดย ๊ฐ๋ ๊ตฌํ๊ณ ์ด๋ํ์ ๊ตฌํํ๋๊ฑธ ๊ณต๋ถํ๊ณ ์๋๋ฐ,
์ฌ์ดํธ ์ค๊ฐ์ ์๋ ์ด๋ฐ ์ฝ๋์์ 'slopeHit.normal'ย ์ด ์์ด.ย slopeHit์ ๋ฒกํฐ๊ฐ ๊ฐ๊ณ , ๋ค์ normal์ด ๋ฌด์์ธ์ง๋ฅผ ๋ชจ๋ฅด๊ฒ ์ด.
'normzeali' ๋ผ๊ณ ๋น์ทํ๊ฑด ์๋๋ฐ ๊ทธ๋ฅ normal์ด๋ผ๊ณ ์จ ์๋๊ฑด ์๋ณด์ด๊ณ , vector3.angle์ด๋ ๊ด๋ จ์๋๊ฑฐ๊ฐ์๋ฐ ๋ชจ๋ฅด๊ฒ ์ด์ ์ง๋ฌธํด๋ด.
์๋ ๊ทธ๋ฅย normzeali ์ค์ฌ์ nomal์ด๋ผ๊ณ ์ฐ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ํผ.
๋ ์ง๋ฌธ ๊ธ์ ๋ต๋ณ ๋ฐ์๋๊ณ ย ์ญ์ ํ๋ ๋ณ์ ์ด ์๋๋๊น ๊ธ์ญ์ ๊ฑฑ์ ํ์ง๋ง.
๋ฒ์ ๋ฒกํฐ๊ฐ ์์ด๋ก normal vector ์ ใด๋ใ
๋์ถฉ ๋ฉด์์ ์์ง์ผ๋ก ๋์ค๋ ๋ฒกํฐ์
์ ๊ธฐ์ slopeHit.normal์ Vector3์ ์๋ Normalize์๋ ๋ค๋ฅธ๊ฒ๋๋ค. Normalize๋ Vector3๋ฅผ ๋ฐฉํฅ๋ง ๊ฐ์ง ๋ฒกํฐ๋ก ์ ๊ทํ์ํค๋ ๊ฒ์ด๋ผ Normal + ize์ธ ๊ฒ์ด๊ณ , ์ ๊ธฐ์ Normal์ ํ ํด๋ก์ง์ ๋ฐฉํฅ์ฑ์ ์๋ฏธํ๋ ๋ฒ์ ์ ๋๋ค. ์ฆ, RaycastHit ๊ตฌ์กฐ์ฒด์์์ normal์ ray๊ฐ ๋ถ๋ชํ ๋ฉด์ด ๋ฐ๋ผ๋ณด๊ณ ์๋ ๋ฒ์ ์ ๋งํฉ๋๋ค. ๋ฉด์ด ๋ฐ๋ผ๋ณด๋ ๋ฐฉํฅ๊ณผ Vector3.up์ ๊ฐ๋์ฐจ๋ฅผ ๊ตฌํด์ ์ด๊ฒ ์ค๋ฅผ ์ ์๋ ๊ฐ์ ์ธ๋์ธ์ง ์๋์ง ์ฒดํฌํ๋ ๋ด์ฉ์ด๋ค์.
์ดํด ๋ ๊ฑฐ ๊ฐ์. ๋ค๋ค ์ค๋ช ๊ณ ๋ง์.