NullReferenceException: Object reference not set to an instance of an objectย
์ด ์ค๋ฅ๋ ๋ญ๊ฐ๋ฌธ์ ๋ผ๋๊ฑฐ์?
ย ย private void OnTriggerEnter2D(Collider2D col) //ํ๋ ์ด์ด์ ์ถฉ๋ํ์๋๋ฅผ ์ํ ํจ์
ย ย {
ย ย ย ย if (col.gameObject.tag == "Monster" && !col.isTrigger)
ย ย ย ย {
ย ย ย ย ย ย rigid.velocity = Vector2.up * jumpPower; //Monsterํ ๊ทธ์ ๋ฌผ์ฒด๋ฅผ ๋ฐ๊ณ ์ ํ
ย ย ย ย ย ย Monster monster = gameObject.GetComponent();
ย ย ย ย ย ย monster.Die(); // ์ฌ๊ธฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ฐ ๋ถ๋ช Monster์คํฌ๋ฆฝํธ์๋ Dieํจ์๊ฐ ์์.๊ทธ๋ฅ ๋ถ๋ฌ์ค๋ ํจ์์์ ์ ์ค๋ฅ๊ฐ ๊ฑธ๋ ค์ ๋ญ ๊ณ ์ณ์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์.
ย ย ย ย ย ย
ย ย ย ย }
ย ย }
์ค๋ธ์ ํธ๊ฐ ์๋ค๋ ์๋ฆฌ๊ฐ์๋ฐ
col.gameObject์ ํ๊ทธ๊ฐ Monster์ธ์ง๋ฅผ ๊ฒ์ฌํ๋ ๊ฑธ๋ก ๋ด์ col.gameObject๊ฐ Monster ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ง ๊ฒ ๊ฐ์๋ฐ Monster monster = gameObject.GetComponent();๋ฅผ Monster monster = col.gameObject.GetComponent();๋ก ๋ฐ๊พธ๋๊ฒ ๋ง์ง ์์๊น์?
์ผํ ์๋ฉ๋๋ค ใ ใ
monster ==null ์ด๋ผ์ ์์ธ๋ฐ์ํ๋ ๊ฑฐ๊ณ ์์ค์์ ์๋ชป๋ ๊ฑฐ๋๊น GetComponent<Monster>() ํด๋ด - dc App
์๋๋ฉด ์ค๋ธ์ ํธ์ ์คํฌ๋ฆฝํธ ์ ๋๋ก ๋ถ์ด์๋์ง ํ์ธํ๊ณ - dc App
์๋๊ธ ๋ง๋๋ก ๋ฌธ๋งฅ์ col.gameObject.GetComponent<Monster>() ํด์ผํ ๊ฑฐ ๊ฐ๊ธฐ๋ ํ๋ฐ ๊ทธ๊ฒ๋ ๊ฒํ ํด๋ณด๊ณ - dc App
์ฐธ์กฐํ๊ณ ์ ํ๋ ์ค๋ธ์ ํธ๊ฐ ์ธ์คํด์ค๊ฐ ์๋๋ค! ๋ผ๋ ๋ป์ธ๊ฑฐ๊ฐ์๋ฐ
์บ๋ฆญํฐ์ ๋ฌ๋ฆฐ ์คํฌ๋ฆฝํธ๊ฐ์๋ฐ, ์ด ๊ฒฝ์ฐ์ col.gameObject๋ก ๋ถ๋ฌ์ผ ํ ๊ฑฐ๊ณ ๊ทธ๋ค์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ถ๋ฌ์ผํ๋ getComponent๋ก ๋ถ๋ฌ์ผ ์ฐพ์ ์ ์๊ฒ ์ง. ์๋์์ ํ ๋ง ๋์ ๋คํ๋ค