===================== ์ด์ „ ์งˆ๋ฌธ =============================

https://www.youtube.com/watch?v=_-w6uKOZxe8

ย 

๋‹ค์Œ์€ gungeon์ด๋ผ๋Š” ๊ฒŒ์ž„์˜ ์˜์ƒ์ž…๋‹ˆ๋‹ค.

ย 

์˜์ƒ์„๋ณด์‹œ๋ฉด ๋งˆ์šฐ์ŠคํšŒ์ „๋ฐฉํ–ฅ์—๋”ฐ๋ผ ํ”Œ๋ ˆ์ด์–ด์บ๋ฆญํ„ฐ์˜ ์ด์ด ๊ธฐ์ค€์ ์— ๊ณ ์ •๋˜์–ด ํšŒ์ „์„ํ•˜๋Š”๋ฐ

ย 

ํžŒ์ง€์กฐ์ธํŠธ 2D ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ด์™€ ๋น„์Šทํ•œ๊ธฐ๋Šฅ์„ ํ•˜๋˜๋ฐ, ์ด๊ฑธ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋กœ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

============================================================



๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด transform.RotateAround๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถ•์„ ๊ณ ์ •ํ•˜์—ฌ ํšŒ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฒƒ์„ ์•Œ์•„๋‚ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.


3543178887_1466298289.281.png


์ œ๊ฐ€ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋Š” ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”๊ฑด์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.