Obstacle Avoidance์ ์๋ ๋ฐ์ง๋ฆ, ๋์ด, ์ฐ์ ์์,ย ํ๋ฆฌํฐ ์ค์ ์ ํด๋๊ณ
๋ฆฌ์ง๋๋ฐ๋๋ก ์์ง์ผ๊ฑฐ๋ผ์ navMeshAgent์ ์๋ ์ ๋ฐ์ดํธ ํฌ์ง์ , ๋กํ ์ด์ ๊ป์.navMeshAgent.updatePosition = false;
navMeshAgent.updateRotation = false;
๊ทธ๋ฆฌ๊ณ ๊ฒฝ๋ก ๋ฐฉํฅ ๊ตฌํด์ ์ด๋์๋ ๋งํผ ์ด๋์์ผ์ค.ย (steeringTarget ๋์ path.corners๋ก ํด๋ ๋๊ฐ์)
if (navMeshAgent.SetDestination(destination))
{
Vector3 nextPathDirection = navMeshAgent.steeringTarget - transform.position;
moveDirection = nextPathDirection;
}
moveController.SetMovementAndRotation(moveDirection, status.MoveSpeed * speedRatio);
์๊น ์ ๋ฐ์ดํธ ๊บผ๋จ์ผ๋ ์์ ์ด๋ ๋๋ ํ์ย ย navMeshAgent.nextPosition = transform.position; ์ด๋ ๊ฒ ์ ๋ฐ์ดํธ ํด์ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๊ธธ์ ์ ์ฐพ์๊ฐ๋๋ฐย ์๋ก ํํผ๋ฅผ ์ํจ
์์ ํฐ ๋ ์์ผ๋ฉด ๋์๊ฐ ์ ์๋ ๊ณต๊ฐ ์์ด๋ ๊ฑ ๋ค์ ์ค ์ ์์ด ใ ใ
์๋ ์ด๋ฐ๊ฑด์ง ๋ด๊ฐ ๋ญ ์๋ชปํ๊ณ ์๋๊ฑด์ง ์กฐ์ธ์ข..ย
๋ฆฌ์ง๋๋ฐ๋๋ก ์์ง์ด๋ฉด navMesh์์ ์ด์ผ ํํผํจ - dc App
SetDestination()ํ ๋ ์์ฑ๋๋ ๊ฒฝ๋ก์ ํํผ ๊ฒฝ๋ก๊ฐ ํฌํจ๋๊ฒ ์๋๊ฐ๋ด?
์ ์ฝ๋ ์ ๋๋ก ์๋ด์ ์ ๊ฑด ๋ชป๋ดค๋๋ฐ ์ ์ navMesh์ธ๋ ๋ฌธ์์ ๋ค๋ฅธ๋ฐฉ์์ผ๋ก ํฌ์ง์ ์ ๋ฐ์ดํธ ํ๋๊ฑฐ ๊ถ์ฅ ์ํ๋ค๊ณ ๋์ด์์๋๊ฑฐ๊ฐ์๋ฐ ๋ฆฌ์ง๋๋ฐ๋ ๊ผญ ์จ์ผ๋๋๊ฑฐ ์๋๋ฉด ๊ทธ๋ฅ ์์ง์์ navMesh์ ๋งก๊ธฐ๋๊ฒ ์์ฐ์ค๋ฝ๊ฒ ๋์ค๋๋ฏ - dc App
ํ.. ๊ทธ๋ผ ํน์ NavMeshAgent๋ง ์ฌ์ฉํ์๋๋ ์๋ ์๋ก ํผํด๊ฐ?
ใดใด ์ง์์ํจ ๊ทธ๋ฆฌ๊ณ ๊ธธ์ฐพ๊ธฐ์์ ๋์ ์ค๋ธ์ ํธ ํํผ๋ ๊ณ ๊ธ๊ธฐ์ ์ด๋ผ ์ง์ํ๋ ์์ ๋ ๋๋ฌผ๊ณ ์๋คํด๋ ํผํฌ๋จผ์ค๋ ์ต์ ์
๊ทธ๋ ๊ตฌ๋ ใ ใ