2d ํ๋ค์ด ์ํ ๊ฒ์์ ์ ์ ์ค์ ๋๋ค.
Transform.Translate(transform.up * speed * time.deltaTime);
์ด ๋ฐฉ์์ผ๋ก ์บ๋ฆญํฐ๋ฅผ ์์ง์ฌ์ฃผ๋ ค๊ณ ํฉ๋๋ค.
๊ทผ๋ฐ ์ด๋ ๊ฒํ๋ฉด ์บ๋ฆญํฐ๊ฐ ์์ ๊ธฐ์ค up ๋ฐฉํฅ์ผ๋ก ์์ง์ฌ์ผํ๋ ๊ฒ ์๋๊ฐ์?
์ฒ์์๋ ์์ชฝ ๋ฐฉํฅ์ผ๋ก ์ ์์ง์ด์ง๋ง
ํ์ ์ ์์ผ์ฃผ๋ฉด ์์ง์ด๋ ๋ฐฉํฅ๊ณผ ์บ๋ฆญํฐ์ ๋ฐฉํฅ์ด ์ด๊ธ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ฐ๋ น rotation.z๋ฅผ -45๋ ํ์ด์ฃผ๋ฉด ๊ฐ๋ ๋ฐฉํฅ์ ์ค๋ฅธ์ชฝ. ๊ทธ๋ฌ๋๊น -90๋๋งํผ ๋ฐฉํฅ์ผ๋ก ์์ง์ด๊ณ ... ๋ฑ ๋๋ฐฐ๋งํผ ์ฐจ์ด๊ฐ ๋์.
์์ธ์ด ๋ญ์ง ์ ์ ์์๊น์?
Quaternion๊ณผ EulerRotation์ ๋ํด ์ฐพ์๋ณด์๊ณ ํด๋น sprite์ ์ค๋ธ์ ํธ๋ฅผ ๋ฐ๋ก ๋ถ๋ฅํด์ sprite๋ ํ์ ํ๊ฒ๋๊ณ ์ค๋ธ์ ํธ๋ ์คํฌ๋ฆฝํธ ๋ฐ์์ ํด๋์ผ
์ค๋ธ์ ํธ = ๋ถ๋ชจ // sprite = ์์์ผ๋ก
์ด... ๊ทผ๋ฐ ๊ทธ๋ ๊ฒํ๋ฉด ์คํ๋ผ์ดํธ๊ฐ ๋ฐ๋ผ๋ณด๋ ๋ฐฉํฅ์ผ๋ก ์ ๋๊ฐ์์ง์๋์? ์คํ๋ผ์ดํธ๊ฐ ๋ฐ๋ผ๋ณด๋ ๋ฐฉํฅ์ผ๋ก ์์ง์ด๊ฒ๋ ๋ง๋ค๊ณ ์ถ์ด์์.
์ ์๋ชป ์ดํดํ๋ค ๋ด๊ฐ, ๊ทธ๋ฌ๋ฉด ๋ง์ฐ์ค์ ๋ฐฉํฅ์ด๋ ์ด๋ํ ๋ฐฉํฅ์ ๊ธฐ์ค์ ์ ์ก์ ํ๋ ์ด์ด์ ์์น๋ฅผ ๊ธฐ์คํด ์ด 2๊ฐ์ ๋ฒกํฐ์ ๋ผ๋์์ ๊ตฌํด์ ๋ผ๋์์ ๊ฐ๋๋ก ๋ณํํด ์คํ๋ผ์ดํธ์ z์ถ์ ๋ณํํด
์ค,... ์๊ฒ ์ต๋๋ค! ๋ผ๋์์ด ๋ญ์ง ์์ง ์ ๋ชจ๋ฅด์ง๋ง ํ ๋ฒ ์ฐพ์๋ณด๊ณ ์ ์ฉ์์ผ๋ณผ๊ฒ์ ๊ฐ์ฌํฉ๋๋ค!
๊ทผ๋ฐ ์ด๊ฑด ๊ทธ๋ฌ๋๊น ์งํ๋ฐฉํฅ์ผ๋ก๋ถํฐ ํ์ ๊ฐ์ ๊ฒฐ์ ์ง๋ ์ญ์ํ๊ตฌ์กฐ์ธ๊ฑฐ์์์ ์ ๊ฐ ์๋ ํ๋ คํ๋๊ฑด ํ์ ๊ฐ์ผ๋ก๋ถํฐ ์งํ๋ฐฉํฅ์ ๊ฒฐ์ ์ง์ผ๋ คํ๋๊ฑฐ๊ณ ๊ทธ๋ ๋ค๋ฉด ํน์ ์ ์ด๋ฐ ํ์์ด ์ผ์ด๋ฌ๋์ง๋ ์๊ณ ๊ณ์ ์ง ์ฌ์ญ์ด๋ด๋๊ด์ฐฎ์๊น์>??
๋ง์ฐ์ค ๋ฒกํฐ๋ screen.worldtospace(input.mouse) ์ด๊ณ ์ด๋ ๋ฐฉํฅํค ๋ฒกํฐ๋... ์ค๋ช ํ๊ธฐ ๊ท์ฐฎ์ ๊ฒ์ ใฑ
์ ๊ฐ์ฌํฉ๋๋ค!
๋๊ฐ ์ํ๋ ๊ฒ Transform.Translate๊ฐ ์ค๋ธ์ ํธ์ ์์น๊ฐ ์ ํ๋ฉด์ขํ๊ฐ ์๋ ์ด ํธ๋์คํผ์ ๊ฐ๋์ ๋ฐ๋ผ ์์ง์ด๋๋๊ฒ ์ง๋ฌธ์ด๋?
์๋๋ฉด ์ค๋ธ์ ํธ z์ถ์ ํ์ ๊ฐ์ ๋ฐ๋ผ ๋ฐฉํฅ๋ฒกํฐ๋ฅผ ๊ตฌํด ๊ทธ์์น๋ก ์ด๋ํ๋ ค๋๊ฑฐ๋
ํ์๋ฉด ๋ด๊ฐ ์ค๋ช ํ๋๊ฑฐ ๋ฐ๋๋ก ํ์๊ณ ์ ์๋ฉด Unity์ Transform์ ๊ฒ์ํด๋ด ๊ธ๋ณด๋ค ๊ทธ๋ฆผ์ด ๋ ์ดํด๋ ๊บผ๋ค
ํ์ ์ ์ด๋ป๊ฒ ํด์ฃผ๊ณ ์๋๋ฐ
ํ์ ์ z += turnSpeed * Time.deltaTime; ์ด๋ ๊ฒ ํด์ฃผ๊ณ ์๋๋ฐ ๊ทธ๋ฅ ์ธ์คํํฐ ์์์ ํ์ ์ ๋จน์ฌ๋ ๋๊ฐ์ ๋ฉ์ปค๋์ฆ์ผ๋ก ์๋ํฉ๋๋ค
์ ์ฌ๊ธฐ์ Z๋ float z = transform.rotation.eulerAngles.z;
transform.position+=transform.up * speed * time.deltaTime; ํ๋ฉด ๋์ง ์๋
transform.position += transform.TransformDirection(Vector3.up) * speed * Time.deltaTime;
์์น๋ก > ๋ฐฉํฅ์ผ๋ก
์ ๋ ์๋ชป ์ ใ ใ