public void OnHit(int dmg)
ย ย {
ย ย ย ย health -= dmg;
ย ย ย ย if (health > 0)
ย ย ย ย {
ย ย ย ย ย ย rigid.AddForce(Vector2.up * 2, ForceMode2D.Impulse);
ย ย ย ย ย ย if (spriteRenderer.flipX == true)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย rigid.AddForce(Vector2.right * 5000);
ย ย ย ย ย ย ย ย Debug.Log(rigid.velocity.x);
ย ย ย ย ย ย }
ย ย ย ย ย ย if (spriteRenderer.flipX == false)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย rigid.AddForce(Vector2.left * 5000);
ย ย ย ย ย ย ย ย Debug.Log(rigid.velocity.x);
ย ย ย ย ย ย }
ย ย ย ย }ย ย ย ย ย ย ย ย ย ย ย ย
ย ย ย ย anim.SetBool("isHit", true);ย ย ย ย ย ย ย
ย ย ย ย Invoke("IdleSprite", 0.3f);ย ย ย ย
ย ย ย ย if (health <= 0)
ย ย ย ย {
ย ย ย ย ย ย OnDie();
ย ย ย ย }
ย ย }
public void OnDie()
ย ย {
ย ย ย ย spriteRenderer.color = new Color(1, 1, 1, 0.7f);
ย ย ย ย spriteRenderer.flipX = true;
ย ย ย ย gameObject.GetComponent<Animator>().Play("Death");ย ย ย ย ย
ย ย ย ย boxcollider.enabled = false;
ย ย ย ย rigid.AddForce(Vector2.up, ForceMode2D.Impulse);ย ย ย ย ย
ย ย ย ย Destroy(gameObject, 0.5f);
ย ย }
์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์งฐ๋๋ฐย
์ ์ด ๋ง์์๋ ๋ค๋ก ํ๊ธฐ๊ฒ ํ๊ณ ์ถ์๋ฐ rigid.AddForce(Vector2.right * 5000); ๊ฐ์ 5000 ์ด์ ์ค์ผ ๋์ ๋ณด์ด์ง๋ ์๊ฒ ํ๊ฒจ
๊ทธ ๋ณด๋ค ์ ์ ๊ฐ์ ์คฌ์๋๋ ํ๊ธฐ์ง๋ ์๊ณ ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น?
๊ทธ๋ฆฌ๊ณ ์ ์ด ์ฃฝ์๋ ๊ฐ๋งํ ํ ์๋ฆฌ์์ ์ฃฝ๋ ๋ฐฉ๋ฒ ์์๊น?
boxcollider.enabled = false; ์ด๊ฑธ ์ฐ๋๊น ํ์ผ๋งต์ ๋ซ๊ณ ๋ด๋ ค๊ฐ์ ์์ ๋ฐฉํธ์ผ๋กย Vector2.up์ ์คฌ๋๋ฐ ๋ง์์ ์๋ค์ด์
๊ทธ๋ ๋ค๊ณ boxcollider.enabled = false; ์ด๊ฑธ ์์ฐ๋ฉด ์ฃฝ๋ ์ ๋๋ฉ์ด์ ์คํ์ ํ๋ ์ด์ด๊ฐ ๋ฟ์ผ๋ฉด ํผ๊ฒฉํ์ ์ด ๋์
ํ๋ง๋๋ผ๋ ํญ ๋์ ธ์ฃผ๊ณ ๊ฐ์ผ๋ฉด ๊ณ ๋ง๊ฒ ๋ค
ํผ๊ฒฉ๋ฐ์ ์ ๋ํด์ ์ฃฝ์ ๋ ๋ฐ์ค์ฝ๋ผ์ด๋๋ฅผ 2๊ฐ ๋ง๋ค๋ฉด ๋์ง์๋ ํ๋๋ ํ์์ ํ๋๋ ์ฃฝ์์๋
์ผ๋จ ๋ต๊ธ ๋ฌ์์ค์ ๊ณ ๋ง์ ๋ด๊ฐ ํ๊ทธ๋ก ์ ์ ํ์ ํ๊ณ ์๋๋ฐ ์ ์ ์๋ ๋ฐ์ค์ฝ๋ผ์ด๋๋ ๋๊ฐ์ง ์์?
๊ทธ๋ฌ๋ฉด ์๋ค ํธ๋์คํผ ํ๋ ๋ง๋ค๊ณ ์ฌ๋ง์ฉ ์ฝ๋ผ์ด๋ ๊ฑฐ๊ธฐ์ layer ๋ฐ๋ก ๋ง๋ค์ด์ physicManager ์ฐพ์์ ์กฐ์ ํ ์ฃฝ์๋๋ง๋ค ํ์์์ฉ ๋๊ณ ์ฌ๋ง์ฉ ์ฝ๋ผ์ด๋ ํด
๊ตณ์ด ๊ณ ์ง ๋ถ๋ฆฌ์๋ฉด ์ฃฝ์๋๋ง๋ค physicManager ๊ฐ์ ธ์์ ์กฐ์ ํ ์ ์๋๋ฐ ์ํด๋ด์ ๋ชจ๋ฆ
์ ๋๋ค ์ ๋ง ๊ณ ๋ง์ ใ ใ ใ ใ ใ
๊ณ ๋ง์ ํจ ํด๋ณผ๊ป ์ข์ ํ๋ฃจ ๋ณด๋ด