ํ์ด๋ฃจ ์ธ๊ฒ๊ฐญ๊ฐคํ๋๋ค
๋๋ Unity2D๋ก ์ฌ์ด๋๋ทฐ ๊ฒ ๋ง๋ค๊ณ ์์ด,
์ง๊ธ์ ๊ฐ์ธ ํ์ต ๋ฐ ํ ํ๋ฆฟ ๋ง๋ค์ด ๋๋ ค๊ณ addForce ์ ์ฐ๊ณ ์บ๋ฆญํฐ ์์ง์์ ๊ตฌํํ๊ณ ์์ด.
์ง๊ธ์ ์์ง์, ์ ํ, ๋ฒฝ์ ํ ๋ฐ ๋งค๋ฌ๋ฆฌย 3๊ฐ ๊ธฐ๋ฅ ๋ง๋ค์๊ณ ,
๋์ฌ, ๊ตฌ๋ฅด๊ธฐ, ๊ณ๋จ์ค๋ฅด๊ธฐ(step), ๊ฒฝ์ฌ์ค๋ฅด๊ธฐ(slope)ย ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๊ณ ํด.
๋์ฌ, ๊ตฌ๋ฅด๊ธฐ๋ ๊ตฌ์์ ํด์ ํ๋ก๊ทธ๋๋ฐ๋ง ํ๋ฉด ๋ ๊ฒ ๊ฐ์๋ฐ,
step์ด๋ slope ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ๊ตฌํํด์ผํ ๊น?
addForce๋ฅผ ์ ์ฐ๊ณ ๋ง๋ค์ด์ผํ๋๋ฐ,ย
step์ย stepHeight๋ฅผ ์ ํด์ย ๊ฐ๋ ค๋ ๋ฐฉํฅ์์ย stepHeight๋์ด์ ๋ฐ๊ฐ๋ฝ์์ ray๋ฅผ ์ด์ isGrounded ์ํ์ด๊ณ , ๋ฐ๊ฐ๋ฝ ray๊ฐ ๋ฟ์์ ๋, stepheight๊ฐ ์ ๋ฟ์๋ค๋ฉด, ์์์ ray๋ฅผ stepheight๋ถํฐ ๋ฐ๊ฐ๋ฝ ray๊น์ง ์ค์ฌ๊ฐ๋ฉด์ ์ถฉ๋์ ๊ฐ์งํ๊ณ , ๊ทธ ๋์ด๋งํผ ์บ๋ฆญํฐ๋ฅผ translateํ๋ฉด ๋ ๊น?
slope๋ ray๋ฅผ ๋ฐ๋ฅ์ผ๋ก ์ผ๋, ์ค์, ์ค๋ฅธ๋ 3๊ฐ๋ฅผ ์ด์ ๊ฐ๋๋ฅผ ๊ตฌํด์ ํค ์ ๋ ฅ์ ๋ฐ๋ผ slope๋ฅผ ์ค๋ฅด๋๋ก ํ๋ฉด ๋ ๊น?
ํน์ ์ข์ ์์ด๋์ด๋ ๊ฒฝํ ์์ผ์๋ฉด ๋ต๋ณ ๋ฌ์์ฃผ์ญ์ . ๊ธ์ญ '์ ๋' ์ ํ๊ฒ ์ต๋๋ค.
์ค์ผ ์ด๋ ต๊ฒ ์๊ฐํจ 2D๊ฒ์์ด๋ผ๋ฉด ์ ๋๋ฉ์ด์ ์ํฅ์ด ๋ฏธ๋ฏธํ ํ ๋ ๊ฒฝ์ฌ์ง๊ณณ์ ๊ฑ ๊ฒฝ์ฌ์ง๊ฒ ์ธ๋ชจ ๋ชจ์์ผ๋ก
https://docs.unity3d.com/kr/2021.3/Manual/class-PhysicMaterial.html
์ด๊ฑฐ ๋ฃ์ผ๋ฉด ๋ ๊ฑฐ๊ฐ๊ณ , ๊ณ๋จ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋์ ์์ด๋์ด๋ ์์ชฝ ๋ฐ์ ๋ฐ์ค์ฝ๋ผ์ด๋๋ฅผ ๋ถ์ฐฉํด์ ๊ณ๋จ์ ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋ ์ฝ๋ผ์ด๋ ํํ๋ก ๋ง๋๋๊ฑฐ์.
๊ทธ๋ฆฌ๊ณ ๋๊ฐ ๋งํ๋๋ก ๊ตฌํํ๋ฉด ํ๋ ์ด์ด ๋จ๋ ์ผ๋ก๋ ์๊ด์์ง๋ง AI๊น์ง ๋ฃ๊ฒ๋๋ฉด ํผํฌ๋จผ์ค ์ ํ ๋ฌด์ ๋ชปํจ ๋ ์ด์บ์คํธ ๋น์ฉ ์๊ฐ๋ณด๋ค ๊ฝค ํฌ๋ค
๊ณ ๋ง์์! ๊ณ ๋ง์ต๋๋ค!
๋ ์ด ๋น์ฉ ์ข๋ ์๋๋๊น ์๊ฐํ ์๊ฐ์ ์ ๋๋ก ๊ตฌํ๋จผ์ ํ๋๊ฒ ๋ซ๋ค
slope๋ velocity.x ์ ๋ฐ๋ผ ๋ฐฉํฅ๊ณผ (์ผ์ชฝ ์๋ซ์ ํน์ ์ค๋ฅธ์ชฝ ์๋ซ์ )์์น๋ฅผ ๊ตฌํ๊ณ ray๋ฅผ ์ด ์ ๋ ์ด๋ก๋ถํฐ ๋ ธ๋ง ๋ฒกํฐ๋ฅผ ๊ตฌํด ๊ฐ๋๋ฅผ ๊ตฌํ๊ณ ์ด๋์๋๋ฅผ ๊ณฑํ๋ฉด ๋
๊ณ๋จ์ ์๋ง๋ค์ด๋ด์ ์ ๋ชจ๋ฅด๊ฒ ๋๋ฐ ๋ฐ๋ฐ๋ฅ๋ถํฐ stepHeight? ๊น์ง ray๋ฅผ ์ด์ดํ ์ด์ ๊ฐ์ฅ ๋จผ ๋ ์ด์ ๊ธธ์ด์ ์ ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ์ด์ ๊ธธ์ด์ ์ ์ ๊ตฌํด ์ ์ผ๋ก๋ถํฐ ๋์ ์ฌ์ด์ ๊ฐ๋๋ฅผ ๊ตฌํด ์๋๋ฅผ ๊ณฑํ๋ฉด ๋
์ฆ ๋์ ๊ฐ ๊ธฐ์ธ๊ธฐ ๊ฐ๋๊ณ์ฐ์ด atan*((y1-y2)/ (x1-x2)) ์ด๋ Mathf.Atan2(y1-y2,x1x2) * Mathf.Rad2Deg; ์ผ๊ป?
์๊น์ง ์ฃผ๋ค๋! ์๋์ ๊ฐ์ฌ ใ