์ด์ ์ ๋ํฐ๋ก ํ๋ง ๋ง๋ค๋ฉด์ ์ ๋ํ ๋ง๋ ๋ค๋ ๋์ธ๋ฐ์...
์์ง ํด๊ฒฐ ๋ชปํ์ต๋๋ค..
๋ค ๋ฐ๋ผํด๋ณด์๊ณ , ์ ๊บผ์ ๋ง๊ฒ ์์ ๋ ํด๋ณด์๋๋ฐ
์ด๋์ ๋ฌธ์ ์ธ์ง๋ ์ค๋ฅ๊ฐ ์๋จ๊ณ ๊ทธ์ ์๋์ ๊ฐํผ๋ฅผ ๋ชป์ก๊ฒ ๋ค์.
[ํ์ฌ ์ฝ๋]
ย public float bulletspeed = 5f;
ย ย public float rotateSpeed = 5f;
ย ย public Transform target;
ย ย private Rigidbody2D rb;
ย ย // Use this for initialization
ย ย void Start () {
ย ย ย ย rb = GetComponent<Rigidbody2D>();
ย ย ย ย target = GameObject.FindGameObjectWithTag("Player").transform;
}
// Update is called once per frame
void Update ()
ย ย {
ย ย ย ย Vector2 direction = (Vector2)target.position - rb.position;
ย ย ย ย direction.Normalize();
ย ย ย ย float rotateAmount = Vector3.Cross(direction, transform.up).z;
ย ย ย ย rb.angularVelocity = rotateAmount * rotateSpeed;
ย ย ย ย rb.velocity = transform.up * bulletspeed;
ย ย }
๋ฐ์ ์ ์ฝ๋๋ง ์ถ๊ฐํ๋ฉด ํ๋ ์ด์ด๊ฐ ์ ์๋ ์ด์์ด ๊ฐ์๊ธฐ ์๋ณด์ ๋๋ค.. ํด๋ก ์์ฑ์ ๋๋๋ฐ..
-> ๊ฒ์์ ํ๋ ์ด์ด๊ฐ ์ด๋ํ๊ณ ์ด์์ ๋ฐ์ฌํฉ๋๋ค. ๋งต์ ๋๋ค์ผ๋ก ๋ชฌ์คํฐ๋ฅผ ๋ฟ๋ฆฌ๋๋ฐ ๊ทธ ๋ชฌ์คํฐ๊ฐ ๋ชจ๋ ํ๋ ์ด์ด๋ฅผ ํฅํด ๋ฌ๋ ค์ต๋๋ค.
ํ๋ ์ด์ด ์ด์๋ก ์ก์ผ๋ฉด ์ฃฝ๊ฒ ๋๊ณ ์ ์๊ฐ ์ฌ๋ผ๊ฐ๋ ๊ทธ๋ฐ ์ค์ ์ ๋๋ค๋ง.. ์๋์ค๋ ์ด์๋ ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ง๋ฉด์๋ถํฐ ์๋ณด์ด๋ค์ ๊ฐ์๊ธฐ.. (์คํฌ๋๋ก ์คํฐ์์ผ์ ํด๋ก ์ ์ ๋ง๋ค์ด์ง)
์ด์์ด ์๋ณด์ด๋ฉด ์ด์ z์ถ์ด ๋ ๋ผ๊ฐ์ง ์๋๊ฐ๋ถํฐ ํ์ธํด๋ณด๋๊ฒ
์ด์๋ณด๋จ ์ง๊ธ ์ ์ ๋ํ ์๊ณ ๋ฆฌ์ฆ์ด ๋๋ฌด ๊ถ๊ธํ ๊ฑฐ์์์ค..
ํ๋ ์๋น ์์น์ด๋ 5๋ฉด ๊ต์ฅํ ํฐ ๊ฐ์ด๋ bulletSpeed๋ฅผ ์์ฃผ ์์ ์ซ์๋ก ์ธํ ํด๋๊ณ (0.01 ์ ๋?) ์๊ณ ๋ฆฌ์ฆ ์์ ํด๋ณด์๋ฉด ์ข์๋ฏ.
์ด ์ฝ๋๋๋ฌธ์ ํฌ๋ช ํ๊ฒ ๋ณํ ๊ฒ ๊ฐ์ง๋ ์๊ณ , ํฌ์ง์ ์ด ์นด๋ฉ๋ผ ์์ญ์ ๋ฒ์ด๋์ ์๋ณด์ด๋ ๊ฒ ๊ฐ์.
ํน์ ๋์ถฉ ์๋๊ฐ ํ๋ ์ด์ด๋ฅผ ํฅํด ๋ ์๊ฐ๊ฒ ํ๋ ค๋ ๊ฒ ๊ฐ์๋ฐ, ์ด์ ์์น๊ฐ ์ ํํ ํ๋ ์ด์ด์ ๊ฒน์ณ์ ธ์ ํ๋ ์ด์ด์ ๊ฐ๋ ค์ ธ์ ์ ๋ณด์ด๋๊ฑธ์๋ ์๊ณ .
์ ๋ํฐ ๊ฒ์ ํ๋ ์ด ์์ค์๋ Scene ์ฐฝ์ ๋ณผ ์ ์์ผ๋, ํ์ด์๋ผํค์ ์ด์ ํด๋ก ๋๊ฒ ๋ณด์ด๋ฉด ๋๋ธํด๋ฆญํ๊ฑฐ๋ ๋๋ฌ์ ํฌ์ง์ ๊ฐ ๋ณด๋ฉด ์ฝ๊ฒ ๋๋ฒ๊น ํ ์ ์์ ๊ฒ ๊ฐ์.
๋์ ํ๋ฅ ๋ก z์ถ์ผ๋ก ๋ ์๊ฐ๊ฑธใ ใ