๋๊ทธ๋ฆฌ๋๊ฐ์ 2dํ๋ซํฌ๋จธ ๊ฒ์์ย ๋ง๋ค๊ณ ์์ต๋๋น
์ด๊ฐ์ ๋ฌด๊ธฐ๋ฅผ ๋ง๋ค์ด์ ํด๋ฆญํ๊ณ ์์ผ๋ฉด ์ด์์ด ์ค๋ธ์ ํธ ํ๋ง ํ์์ผ๋ก ํ๋ํ๋์ฉ ์ผ์ง๋ ๋ฐฉ์์ธ๋ฐ์
์ด์ ์ค๋ธ์ ํธ๋ค์ ์ผ์ก์๋ ์ฝ๋ฃจํด ํจ์๋ฅผ ์คํ์์ผ์ ์์ผ๋ก ๋ฐ์ฌ๋๋ ํํ๋ก ํ๊ณ ์์ต๋๋ค.
IEnumerator ShotVolt(float bulletSpeed)
ย ย {
ย ย ย ย transform.rotation = Quaternion.AngleAxis(angle - 90, Vector3.forward);
ย ย ย ย for (int i = 0; i < 100; i++)
ย ย ย ย {
ย ย ย ย ย ย transform.Translate(Vector2.up.normalized * Time.deltaTime * speed);
ย ย ย ย ย ย yield return null;
ย ย ย ย }
ย ย ย ย gameObject.SetActive(false);
ย ย }
์ด๋ ๊ฒ ์ฌ์ฉํ๊ณ ์๋๋ฐ
๋ฌธ์ ๊ฐ ์ ๋ํฐ ์๋ํฐ ์์์๋ ์๋ํ๋๋ก ๋ฐ์ฌ๊ฐ ๋๋๋ฐ ๋น๋๋ฅผ ํ๋ฉด ์์ฒญ ์งง์๊ฑฐ๋ฆฌ๋ง ๋ ์๊ฐ๋๋ค
์๋ง ์ปดํจํฐ ์ฌ์์ด ์์ข์์ ์ Time.deltaTime์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๊ณ ์๋๊ฑฐ๊ฐ์๋ฐ
๋ค๋ฅธ ์ด์ ๋ฐ์ฌํ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์๊น์?
Time.fixedDeltaTime ํด๋ณด์ค๋์ฌ
๊ทธ๋ผ ํน์ ์ฝ๋ฃจํด yield์์๋ endofframe์ผ๋ก ํ ๊น์?
๊ทผ๋ฐ ๊ทธ๋ฅ FixedUpdate์์ ์ฐ์ฐํ๋๊ฒ ์ข์ง ์๋์ฌ
๊ทธ๋ฌ๊ฒ์..? ํ๋ฌ์ ์ฏค์ ์ง ์ฝ๋๋ผ ์ ์ฝ๋ฃจํด์ผ๋ก ํ๋์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ ๊ทธ๊ฒ๋ ํ๋ฒ ํด๋ณด๊ฒ ์ต๋๋ค
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ผ๋จ lerp๋ก ํ๋๋ฐฉ๋ฒ์ด ์ ์ผ๋จผ์ ๋ ์ค๋ฅด๊ธด ํ๋๋ฐ ํน์๋ํด์ ์ผ๋จ ์ฌ์ญค๋ดค์ต๋๋ค ์ญ์ ๊ทธ๋ฐฉ๋ฒ์ด ์ ์ผ ๋์๊น์?
for๋ฌธ์ด ๋ฌธ์ ์
Translate๋ก ์ด๋์ํค๋ฉด ์ถฉ๋์ฒ๋ฆฌ๋ ๋ญ๋กํ์๋์
๊ทธ๋ฅ ๋งค๋์ ๊ฐ์ ์คํฌ๋ฆฝํธ์ Awake ํจ์์๋ค Application.targetFrameRate = 60; ํ๋ ์ถ๊ฐํ๋ฉด ํด๊ฒฐ๋ ์ผ. ๊ฒ์ ๊ฐ๋ฐํ ๋ ๊ผญ ํ๋ ์์จ ๋จผ์ ์ง์ ํ๊ณ ๊ฐ๋ฐํ๋ ์ต๊ด ๋ค์ด์
์ดํฐ๋ ์ด์ ์ 100๋ฒ์ผ๋ก ๊ณ ์ ํด์ ๊ทธ๋ผ ๋ ์๊ฐ๋ ์๊ฐ์ด ๋์๋ ๊ฑฐ๋ฆฌ๊ฐ ๋์๋ ์ํ๋ ๊ฑฐ๋ฆฌ๊ฐ ์๋ค๋ฉด ๊ทธ ์กฐ๊ฑด์ ๋ถํฉํ ๋๊น์ง ๋ฃจํ๊ฐ ์ ์ง๋๋๋ก ์กฐ๊ฑด์ ๋ณ๊ฒฝํด์ผํจ
์์ด๋ฌ๋ ํ๊ฒ๋ ์ปดํจํฐ ์ฌ์์ด ์์ข์๊ฒ ์๋๋ผ ์ข์์ ๋ ๋นจ๋ฆฌ ๋๋๊ฒ
๊ทธ๋ฅ AddForce๋ก ๋ฐ์ฌํ๊ณ ๋ ๋๋๊ฒ ์ด๋ ๊ตณ์ด ์ฝ๋ฃจํด ๋๋ฆฌ์ง๋ง๊ตฌ