ย void OnCollisionEnter2D(Collision2D collision){
ย ย ย ย if(collision.gameObject.tag == "enemy"){
ย ย ย ย
ย ย ย ย ย ย Debug.Log("hit");
ย ย ย ย ย ย OnDamaged(collision.transform.position);
ย ย ย ย }
ย ย }
ย ย void OnDamaged(Vector2 targetPos)
ย ย { ย
ย ย ย ย //๋ ์ด์ด ๊ตํ
ย ย ย ย gameObject.layer = 9;
ย ย ย ย
ย ย ย ย spriteRenderer.color = new Color(1,1,1,0.4f);
ย ย ย ย int dirc = transform.position.x - targetPos.x > 0 ? 1:-1;
ย ย ย ย rigid.AddForce(new Vector2(dirc,1)*7 ,ForceMode2D.Impulse);
ย ย ย ย //๋ฌด์ ์๊ฐ
ย ย ย ย Invoke("OffDamaged", 2);
ย ย }
ํ๋ ์ด์ด๊ฐ ์๋๋ฏธํ ๊ทธ์ ๋ฟ์ผ๋ฉด ๋ค๋ก ํ๊ฒจ๋๊ฐ๊ณ ๋ฌด์ ์๊ฐ ์ฃผ๋ ์ฝ๋ ๋ฐ
int dirc = transform.position.x - targetPos.x > 0 ? 1:-1;
ย ์ด ์ฝ๋์์ ? 1:-1<<<์ด๊ฒ ๋ญ๋ป์ธ์ง ๋ชจ๋ฅด๊ฒ ์ด์
์ฐธ์ ๋ค๊ฑฐ์ง
์ค ใณ
์ผํญ์ฐ์ฐ์
ใณใณ
if(์กฐ๊ฑด๋ฌธ) dirc = 1 else dirc = -1
๊ทธ๋ ๊ตฐ์
transform.position.x - targetPos.x ๊ฐ์ด 0๋ณด๋ค ํฌ๋ค๋๊ฒ ์ฐธ์ด๋ฉด int dirc์ 1 ์๋๋ผ๋ฉด int dirc์ -1
int dirc = -1; if( transform.position.x - targetPos.x > 0) dirc = 1;
์๋ณธ ์ฝ๋๊ฐ ์ฝ๊ธฐ ์ซ์ผ๋ฉด(O) ํ๋ค๋ฉด(X) ์ข ๋ ์ฌ์ด์ฝ๋๋ก ์ฐ๋๊ฑธ ์ถ์ฒ. ์ด๊ฒ ์ฝ๊ธฐ๋ ์ฝ๊ณ ๋ฒ๊ทธ์ก๊ธฐ๋ ์ข๋ค
์ผํญ์ฐ์ฐ์์๋ก ๊ฒ์ํด๋ณด์
x ์ถ ์๋ ๋ฐฉํฅ์ ๊ตฌํ๋๊ฑฐ๊ฐ์๋ฐ mathf.sign(transform.position.x - targetPos.x) ์์ผ๋ก ์ฐ๋๊ฒ ๋ ์ข์๊ฑฐ๊ฐ์์.