===================== ์ด์ ์ง๋ฌธ =============================
https://www.youtube.com/watch?v=_-w6uKOZxe8
ย
๋ค์์ gungeon์ด๋ผ๋ ๊ฒ์์ ์์์ ๋๋ค.
ย
์์์๋ณด์๋ฉด ๋ง์ฐ์คํ์ ๋ฐฉํฅ์๋ฐ๋ผ ํ๋ ์ด์ด์บ๋ฆญํฐ์ ์ด์ด ๊ธฐ์ค์ ์ ๊ณ ์ ๋์ด ํ์ ์ํ๋๋ฐ
ย
ํ์ง์กฐ์ธํธ 2D ์ปดํฌ๋ํธ๊ฐ ์ด์ ๋น์ทํ๊ธฐ๋ฅ์ ํ๋๋ฐ, ์ด๊ฑธ ์ด์ฉํด์ ๊ตฌํํ ์ ์์๊น์?
๋๋ ์คํฌ๋ฆฝํธ๋ก ์ฝ๊ฒ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค.
============================================================
๊ตฌ๊ธ๋ง์ ํตํด transform.RotateAround๋ฅผ ์ฌ์ฉํ๋ฉด ์ถ์ ๊ณ ์ ํ์ฌ ํ์ ์ํฌ ์ ์๋ค๋๊ฒ์ ์์๋ด ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค.

์ ๊ฐ ์ํ๋ ๊ฒฐ๊ณผ๋ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ต๋๋ค.
shootpoint๋ gunobject์ ์์์ผ๋ก ๋ฐ์ฌ์ง์ ์ ์์น์์ผฐ์ต๋๋ค.
gunc๋ gunobject์ ์ฝ๋ผ์ด๋ ์ปดํฌ๋ํธ๋ก ํ์ ์ถ์ ๊ณ ์ ํ๊ธฐ์ํด ์์๋ก ์ฌ์ฉํ์ต๋๋ค.
์๋๋ ์์ฑํ ์ฝ๋์ ๋๋ค.
private void weaponrotation(){
Vector2 mpos = Camera.main.ScreenToWorldPoint (Input.mousePosition);
Vector2 target;
target.x = mpos.x - shootPoint.transform.position.x;
target.y = mpos.y - shootPoint.transform.position.y;
float angle = -1 * Mathf.Rad2Deg * Mathf.Atan2 (target.x, target.y);
gunobj.transform.RotateAround (gunc.bounds.center, new Vector3(0f,0f,1f), angle);
}
weaponrotation()์ update์์ ํธ์ถํฉ๋๋ค.
ํ ์คํธ๋ฅผ ํด๋ณด๋ ์ ์ฌ์ง๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ์๋๋ผ ์ด์ด ์ ํ๊ธฐ๋ง๋ฅ ๊ณ์ ํ์ ํ๊ธฐ๋งํฉ๋๋ค.
RotateAround๋ Rotate์ฒ๋ผ =value ๊ฐ ์๋ +=value๋ฅผ ํ๊ธฐ๋๋ฌธ์ผ๊น์?
Quaternion์ ์ฌ์ฉํด์ผํ๋๊ฑด์ง ๊ถ๊ธํฉ๋๋ค.
์คํ๋ผ์ดํธ๋ฅผ ํ์ ์ค๋ธ์ ํธ๋ก ๋นผ์ ๋ก์ปฌํฌ์ง์ 0,0,0์ ์์ก์ด ์์น์ ๋ง์ถฐ์ฃผ๊ณ ๋ฃฉ์ฃ๊ฐ์๊ฑฐ๋ก ๋๋ ค์ฃผ๋ ๋ฐฉ๋ฒ๋ ์์
ใด ์ ๊ทธ๊ฒ ๋ฌด์จ๋ง์ธ์ง ์กฐ๊ธ๋ง ๋ ์์ธํ ์ค๋ช ํด์ฃผ์ค ์ ์๋์?? ์ด๋ค ํจ์์จ์ผํ๋์ง๋ง..