if(moveDir.sqrMagnitude > 0.01f) {
Vector3 rotDir = Vector3.Slerp (transform.forward, moveDir, RotationSpeed * Time.deltaTime);
transform.LookAt (transform.position + rotDir);
}
์ด๋์ ๋ณด๋ฉด ๊ฒฐ๊ณผ๊ฐ moveDir๊ฐ์ ๋ฐ๋ผ ์ค๋ธ์ ํธ๊ฐ ํ์ ์ ํจ
Vector3 rotDir = Vector3.Slerp (transform.forward, moveDir, RotationSpeed * Time.deltaTime);
์ด๋ถ๋ถ์ ์ ๋ํฐ ๊ตฌํ๋ณด๊ฐ๋ฒ APIย ๋ณด๊ณ z๋ฐฉํฅ์์ moveDir๋ฐฉํฅ๊น์งย Rotation์คํผ๋๊ฐ ๋งํผย ํ์ ํ๋ค๋ ๋ป์ผ๋กย ์ด์ฐ์ ์ฐ ์ดํด๋ ํ๊ฒ ๋๋ฐ
์๋ซ์ค์ดย ์ดํด๊ฐ ์๊ฐ
LookAt์ด ๋จ์ํ ์ง์ ๋ ๋ฐฉํฅ์ผ๋ก ํ์ ํ๋๊ฑฐ ์๋์๋
position๊ฐ์ ์ ๊ฑธ ์ ์ถ๊ฐํจ
๋ง๊ทธ๋๋ก LookAt์ '๊ฑฐ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ณธ๋ค' ๋ผ๋๋ป์. ๊ทธ๋ฌ๋๊น (position + ๋ฐฉํฅ) ์ ํด๋นํ๋ ์์น๋ฅผ ๋ฐ๋ผ ๋ณธ๋ค ๋ผ๊ณ ํด์ํ ์ ์์. ๋จ์ง ๋ฐฉํฅ๋ฒกํฐ๋ก ํ์ ํ ๊บผ๋ฉด Quaternion.๋ฃฉ๋กํ ์ด์ ํจ์๋ง ์จ๋ ๋ฌด๋ฐฉํ๋ค. ์ ๋ฃฉ๋กํ ์ด์ ์์ด๊ฐ ๊ธ์ง๋จ์ด์ง.. ์ํผ..
LookRotation
ํค๊ฐ์ ๋ฐ๋ผ ์ ํ์ข์ฐ๋ก ํ์ ํ๋ ์บ๋ฆญํฐ๋ฅผ ๋ง๋ค๊ณ ์์๊ฑฐ๋ . ์ฒ์ ๋ง๋ค๋ ์ด๋์ ์ด๋ป๊ฒ ํ์ ์ํฌ์ง ๊ณํ์ด ์์กํ์ ์์ ์ฐพ์๋ณด๋ฉด์ ์ ์ฉํด๋ณด๋๋ฐ ์ดํด๊ฐ ์๋์ด์ ๋ฌผ์ด๋ด.
๊ทผ๋ฐ transform.rotation๋ ์๋๊ณ ์ position๊ฐ์ ์ ๊ฑธ ์ถ๊ฐํ๋์ง ์ดํด๊ฐ ์๋จ;
LookAt์ ํน์ ์์น๋ฅผ ๋ฐ๋ผ๋ณด๋ ๊ฑฐ๋๊น.
๊ทธ๋๊น ๋จ์ํ ํค์ ๋ ฅ์ ์ข์ฐ๋ก ํ์ ํ๋๊ฑธ ํ๊ณ ์ถ์ผ๋ฉด transform.rotation.eulerAngles; ๋ฐ์์์ y์ถ์ผ๋ก ํ์ ํ๋ฉด๋
ใด์..์๊ฒ ์ ํใฑใ
transform.LookAt ์ ์ง์ ๋๋ฐฉํฅ์ผ๋ก ํ์ ํ๋๊ฒ ์๋๋ผ, ์ง์ ๋ ์๋์ขํ๋ฅผ ๋ฐ๋ผ๋ณด๋๊ฑฐ์. ๋์ ๋ค๋ฆ.
ใด ๊ทธ๋ผ ์ค๋ธ์ ํธ.position์๋ค rotDir์์ ๊ณ์ฐ๋ ์ขํ๊ฐ์ด ๋ํด์ง๋ ๊ฒฐ๊ณผ์ ์ผ๋ก position์์ ์๊ธด ์ขํ๋ฅผ ์ณ๋ค๋ณด๊ฒ ๋๋ค๋๊ฑด๊ฐ