์์ด์๊ฐ ๊ฐ์ง ์คํฌ๋ฆฝํธ์์ Fireํจ์๊ฐ ์ด์์ ์์ฑํจ
์ฒซ์งค ์ ค ๋ง์ง๋ง์ค ์ ๋ ๊ฒ ์ญ์ผ๋ก ์ด์ ์คํฌ๋ฆฝํธ LockONํจ์์ ์ ๊ทผํ๋๊ฑฐ ๋ง์?
์ ๋ ๊ฒ ์ ๊ทผํด์ ๋์ฒด ์ด๋ป๊ฒ ํ๋ค๋๊ฑฐ์??? ใ ใ
์์ด์๊ฐ ๊ฐ์ง ์คํฌ๋ฆฝํธ์์ Fireํจ์๊ฐ ์ด์์ ์์ฑํจ
์ฒซ์งค ์ ค ๋ง์ง๋ง์ค ์ ๋ ๊ฒ ์ญ์ผ๋ก ์ด์ ์คํฌ๋ฆฝํธ LockONํจ์์ ์ ๊ทผํ๋๊ฑฐ ๋ง์?
์ ๋ ๊ฒ ์ ๊ทผํด์ ๋์ฒด ์ด๋ป๊ฒ ํ๋ค๋๊ฑฐ์??? ใ ใ
์ผ๋จ ์ด์์ "์์ฑ"ํ๋ฉด ์๋๋ค. ์ด ์ ๋ง์ผ!
??
์ค๋ธ์ ํธ ํ์ ์ฐพ์๋ณด์ธ์! ํด๋จผ!
์๋ฐ ์ง๊ธ ๊ทธ๊ฒ ์ค์ํ๊ฒ ์๋๋ผ๊ณ
๊ทธ๊ฒ ์ ค ์ค์ํ์ง. ์ง๊ธ ์ง๋ด์ผ GC๋๋ฉด ๊ฒ์ ๋๋ ๋๊ธธํ ๋ฐ ใฒใฒ ๋ ์ง๊ธ ์ง๋๊ฑฐ ์์ฑํด๋ด์ผ ์ค๋ธ์ ํธํ ๋ฐฉ์์ผ๋ก ๋ฐ๊พธ๋ ค๋ฉด ๋ ์ฝ๋ ๋ค ๋ฏ์ด๊ณ ์ณ์ผํจ
์ค๋ธ์ ์์น๋ ๋ชป์ฐพ๋์ ํญํ ๋ฌด์จ ์ต์ ํ์ด๋ ์ง๋ํ๋ค์ง์ง
์ ๋ชฉ๋ณด๊ณ ๊ทธ๊ฑด์ค์์๋ค
๋๊นจ....
๋ค ๋๋ค, ๋ฐฉํฅ ๋ฒกํฐ ๋ง๋ค์์ผ๋๊น ๋ฐฉํฅ ๋ฒกํฐ * bulletSpeed๋ก ์์ง์ด๋ฉด ๋จ ๊ทผ๋ฐ ์ ์์ด์ ์ค๋ธ์ ํธ๋ฅผ bullet์ด ์ฐธ์กฐํ๋๊ฑฐ์?
ํด๋์ค ๋ด์ currentDirection์ด๋ผ๋ Vector3 ๊ตฌ์กฐ์ฒด ๋ณ์ ํ๋ ๋ง๋ค๊ณ LockOn ํจ์๋ก ์ a๋ฅผ currentDirection์ ์ง์ด๋ฃ์ผ์ Update๋ฌธ์์๋ transform.position += currentDirection * bulletSpeed * Time.deltaTime; ํ๋์ง rigidbody ์จ์ ๊ทธ๋ฅ ๋ฐ์ฌํ์๋ง์ rigidbody.velocity = currentDirection * bulletSpeed ํ๋์ง
์ค๋ธ์ ํธ ํ๋ง์ ๋น์ฅ์ ์ํด๋ ๋จ. ์ง๊ธ ๋์์ ๋ฌธ์ ๋ ํด๊ฒฐ ๋ชปํ๋๋ฐ ๋จผ ๋ฏธ๋ ์ด์ผ๊ธฐ๋ฅผ ์ง๊ธ์ผ๋ก ๋์ด์ค๋ฉด ์ธ์ ๋์๊ฐ๊ฒ ํ๋ง ์ ์ฉํ๋๊ฑด ์ฝ๋ ์ข๋ง ์์ ํด์ค๋ ์ถฉ๋ถ
๋ ๋ง์ด ๋๋ฌด ์ด๋ ค์
๋์ฒด ์ด๋๋ค๊ฐ ๋ญ ์ฐ๋๊ฑด์ง ์ดํด๋ฅผ ๋ชปํ๊ฒ ์;;
2D ๊ฒ์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํ๊ณ ๋งํ ๊ฒ 1. LockOn์ ์ด์์ ๋ฐฉํฅ์ ์ง์ ํด์ฃผ๋ ํจ์๋ค. 2. Bullet์ด ์ Roka๋ฅผ ์ฐธ์กฐํ๋๊ฑฐ์? 3. Bullet ํด๋์ค์ Vector3 currentDirection; ๋ณ์๋ฅผ ๋ง๋ค์ด๋ผ. 4. LockOn ํจ์๊ฐ currentDirection์ ์์ ํ๋๋ก ํด๋ผ. ์ง๊ธ ๋ง๋ a๋ฅผ currentDirection = a; ํ๋์ง. 5. Bullet์ ์ด๋์ํค๊ณ ์ถ๋ค๋ฉด Update ํจ์์๋ค๊ฐ transform.position += currentDirection * bulletSpeed * Time.deltaTime;์ ํด๋ผ
6. Update ํจ์์์ ์ฌ์ฉํ๋๊ฒ ๋ณ๋ก๋ผ๊ณ ๋ณด์ธ๋ค๋ฉด Bullet์๋ค๊ฐ Rigidbody2D ์ปดํฌ๋ํธ๋ฅผ ๋ฃ๊ณ ์ฌ์ฉํด๋ผ. 7. Bullet์ Rigidbody2D์ ์ ๊ทผํด๋ผ. 8. LockOn์์ Rigidbody2D.velocity = a; ํด๋ฒ๋ ค๋ผ
Invoke()์จ์ ์ด์ ํ๊ดดํ์ง๋ง๊ณ ๊ทธ๋ฅ Destroy์ ์๊ฐ ์ง์ฐ ์์ผ๋๊น ๊ทธ๊ฑฐ ์ฐ์