๋(ํ๋ ์ด์ด)์ ์์ด๋ ์ถฉ๋ํ๋ ์ค๋ธ์ ํธ์ ์์ด ๊ฐ์ผ๋ฉด ์ค๋ธ์ ํธ ํ๊ดด๋ฅผ ๊ตฌํํ๊ณ ์ถ์๋ฐ
ย ย SpriteRenderer _spriteRenderer;
ย ย SpriteRenderer _colorTrap;
ย ย void OnCollisionEnter2D(Collision2D collision)
ย ย {
ย ย ย ย _colorTrap = GameObject.FindWithTag("Color Trap").GetComponentInChildren<SpriteRenderer>();
ย ย ย ย if (_spriteRenderer.color == _colorTrap.color)
ย ย ย ย {
ย ย ย ย ย ย Destroy(collision.gameObject);
ย ย ย ย }
ย ย }
์ด๋ ๊ฒ ํ๋๋ฐ ํ๊ดด๊ฐ์๋.. GameObject.Find๋ก ์ด๋ฆ์ผ๋ก ๋ง์ถฐ์ํด๋ ๊ฐ๋๋ง๋๋๊ฑฐ๋ก๋ด์๋
๋ถ๋ซํ๋ ์ค๋ธ์ ํธ์ ์์ ์ฒดํฌํ๋๊ฒ์๋๊ณ ์ ๊ฑฐ ํด๋นํ๋๊ฑฐ์ค ๋๋ค์ผ๋ก ํ๋๋ฅผ ์ฒดํฌํ๋๊ฑฐ๊ฐ์๋ฐ ๊ตฌํํ ๋ฐฉ๋ฒ์์๊น? ใ ใ
OnCollisionEnter2D ํจ์์ ์ธ์๋ก ๋ค์ด์ค๋ ๊ฒ ๋ถ๋ชํ๋ ๊ฒ์ ์ค๋ธ์ ํธ์ ํด๋ผ์ด๋ ์ปดํฌ๋ํธ์ธ๊ฑด ์๊ณ ์๊ฒ ์ง?
void OnCollisionEnter2D(Collision2D collision) ์์ collision ๋ณ์๊ฐ ๋ฐ๋ก ๋ถ๋ชํ ๊ฒ์ ์ค๋ธ์ ํธ์ ํด๋ผ์ด๋์ธ๊ฐ์ผ
collision.gameObject ๊ฐ ๋ฐ๋ก ๋ถ๋ชํ ๊ฒ์ ์ค๋ธ์ ํธ์ง
๊ทธ๊ฑด์๋๋ฐ ๊ทธ ์ค๋ธ์ ํธ์ ์์ด๋จผ์ง ์ถ์ถํ ๋ฐฉ๋ฒ์๋ชจ๋ฅด๊ฒ ์..
์ ์กฐ๊ฑด ๊ฒ์ฌ๋ฅผ ํ ๋ ๋ฌธ์ ๊ฐ ์์ด๋ณด์ด๋ ๊ฒ๊ฐ๋ค
GameObject.FindWithTag ๋ฉ์๋๋ก ๋ถ๋ชํ ๊ฒ์์ค๋ธ์ ํธ์ ์์ ์ถ์ถํ๋ ค๊ณ ํ๊ฑฐ์ผ?
๋ด๊ฐ ์๊ฐํ๊ฒ ๋ง๋ค๋ฉด _colorTrap = collision.GetComponentInChildren<SpriteRenderer>(); ์ด ๋ง๋ ๊ฒ๊ฐ๋ค
GameObject.FindWithTag ๋ ์ฌ์ ์๋ ์ค๋ธ์ ํธ๋ฅผ ๋ชจ๋ ๊ฒ์ฌํ๋๊ฑฐ๋ผ ์ํ๋ ๊ฒ๋ง ๊ฒ์ฌํ๊ธฐ์ ๋ถ์ ํฉํ๊ฑฐ๋ฉ
collision.gameObject.GetComponentInChildren<SpriteRenderer>(); ํ๋๊น ๋ฌ๋ฐ ๊ณ ๋ง๋ค
์ ๊ทธ๋ ๋ค collision.gameObject๋ค ใ ใ ใ ใ ใ ๋ถ์กฑํ ๋ต๋ณ์ด ๋์๋์๋ค๋ ๋คํ์ด๋ค