(๋ฐ์ ํ๋ฆฌํน ๋ฐฉํฅ์ ํ์์ ์ด์ด์ง๋๋ค;;;)
๊ธฐ์ ์ ์ฐ๋ฉด ์จ์ด๋ธ๊ฐ์๊ฒ ๋๊ฐ๋ฉด์ Muzzle์์ attackDir๊น์ง ์ด๋ํ๋ ํ์์ ๋๋ค.
์ด๋์ค์๋ ์ ๋๋ฉ์ด์ ์ด ์ฌ์์ด ๋๊ตฌ์.
์ผ๋จ ๊ธฐ์ ์ ์ธ๋๋
if (Input.GetKeyDown(KeyCode.Alpha5))
{
ย ย attackDir = transform.right * transform.localScale.x;
ย ย ย
ย ย // ํฌ์ฌ์ฒด ์ด๋
ย ย Projectile projectile = Instantiate(sharkWavePrefab, sharkMuzzle.position + attackDir, Quaternion.identity);
ย ย projectile.transform.position = Vector3.Lerp(sharkMuzzle.transform.position, sharkDir.transform.position, Time.deltaTime*attackSpeed);
ย ย ย
ย ย // ํฌ์ฌ์ฒด ๋ฐ์
ย ย projectileDir = transform.localScale.x > 0 ? -1f : 1f;
ย ย projectile.transform.localScale = new Vector3(projectileDir, 1f, 1f);
}
์ด๋ ๊ฒ ํ๋๋ฐ attackDir๊น์ง ๊ฐ๊ธฐ๋ ์ปค๋ ์ค๊ฐ์์ ์์ด์ง๋๋ค. attackSpeed๊ฐ์ ๋ฐ๊ฟ๋ณด๊ฑฐ๋ ์ ๊ฑฐ๋ฅผ ์ง์ฐ๊ณ 4f๊ฐ์ ๊ฐ์ ๋ฃ์ด๋ ๋ง์ฐฌ๊ฐ์ง;;;
ํฌ์ฌ์ฒด ์คํฌ๋ฆฝํธ๋ ํ์ฌ ์ด๋ ์ต๋๋ค.
public class Projectile : MonoBehaviour
{
ย ย Animator anim;
ย ย SpriteRenderer spriteRenderer;
ย ย private void Start()
ย ย {
ย ย ย ย anim = GetComponent<Animator>();
ย ย ย ย spriteRenderer = GetComponent<SpriteRenderer>();
ย ย }
ย ย private void Update()
ย ย {
// ์ ๋๋ฉ์ด์ ์ด ๋ค๋๋๋ฉด ์ ๊ฑฐ
ย ย ย ย if (anim.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1.0f)
ย ย ย ย ย ย Destroy(gameObject);
ย ย }
}
ย projectile.transform.position = Vector3.Lerp(sharkMuzzle.transform.position, sharkDir.transform.position, Time.deltaTime*attackSpeed);
์ด๊ฑฐ๋ง ์ด๋ป๊ฒ ์๋ณด๋ฉด ๋ ๊ฑฐ๊ฐ์๋ฐ;;;;
if (anim.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1.0f) Destroy(gameObject); ์ด ๋ถ๋ถ ๋๋ฌธ์ ์ ๋๋ฉ์ด์ ์ด ํ ์ฌ์ดํด ๋๊ณ ํฌ์ฌ์ฒด๊ฐ ์ฌ๋ผ์ง ๊ฒ๋๋ค. ์๋ง ์๋ํ์ ๊ฒ ํผ๊ฒฉ ์ดํํธ ํ ์ ๋๋ฉ์ด์ ์ด ๋๋๋ฉด ์ฌ๋ผ์ง๊ฒ ํ๊ณ ์ถ๋ค๋ฉด if(anim.GetCurrentAnimatorStateInfo(0).IsName("fx") && anim.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1.0f) Destroy(gameObject); anim.GetCurrentAnimatorStateInfo(0).IsName("fx")<-์ฌ๊ธฐ์ ์ ๋๋ฉ์ด์ ์ด๋ฆ ๋ฃ์ด์๋ฉด ๋ ๊ฑฐ ๊ฐ๋ค์
1. ํฌ์ฌ์ฒด ์ด๋์ ํฌ์ฌ์ฒด ์คํฌ๋ฆฝํธ์์ ์ ์ด 2. ํฌ์ฌ์ฒด ์ ๊ฑฐ๋ฅผ ์ ๋์์ด์ ์ ๊ท์์ํค์ง ๋ง๊ณ ์ฝ๋ฃจํด์ผ๋ก ์ผ์ ์๊ฐ ์ดํ ์ ๊ฑฐ