ย protected virtual void Start()
{
InDialogueZone = false;
if (GameManager.Instance.Player!=null)ย ย ย ย ย ย ย ย ย ย ย <- ์ด ์ฝ๋ ํด์์ด ๋ญ๊ฐ์??
{
_player = GameManager.Instance.Player;
if (GameManager.Instance.Player.GetComponent<CorgiController>() != null)
{
_controller = GameManager.Instance.Player.GetComponent<CorgiController>();
}
}
}
์ด ์ฝ๋์ธ๋ฐ,
๋ค์ด์ผ๋ก๊ทธ ์กด์ด ๋นํ์ฑํ(bool๋ณ์)๋ผ๋ฉด,
๊ฒ์๋ฉ๋์ (ํด๋์ค๋ช ).์ธ์คํด์ค.ํ๋ ์ด์ด.. ์ฌ๊ธฐ์
instance๋ ๋ญ๊ฐ์?..์ด์ฉ๋ ์ฐ๋๊ฑฐ์์?
2๋ฒ์งธ,
๊ฒ์๋ฉ๋์ ์ ํ๋ ์ด์ด๊ฐ !=null?์ด ์ฝ๋ ํด์์ด...๋ญ๊น์?
1. instance ๋ GameManager ์ ์ ์๋ ๋ณ์์์. ๋ณดํต ์ฑ๊ธํคํด๋์ค์์ ์์ฃผ ์ฐ์ด๊ตฌ์, static ์ผ๋ก ๋์ด ์์ด์ ์ ์ญ์ ์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค
2. "!= null " ์ null ์ด ์๋์ง ์ฒดํฌํ๋ ๊ฑฐ์์. player ๊ฐ null ์ด ์๋๊ฒฝ์ฐ ๊ดํธ์์ ์ฝ๋๋ฅผ ์คํํ๋ค๋ ์๋ฏธ์ ๋๋ค.
์์ฑ์์ธ๋ฐ์, 2๋ฒ์ ๊ฒฝ์ฐ ํ๋ ์ด์ด๊ฐ null์ด ์๋๊ฒฝ์ฐ๋ผ๋๊ฒ ๋ป์ด ์ด๋ป๊ฒ ๋๋๊ฑด๊ฐ์?
if (_destroyEffectPrefab != null) { GameObject effect = Instantiate(_destroyEffectPrefab, transform.position, Quaternion.identity); Destroy(effect, _destroyEffectDestroyTime);
์ ๊ฐ์ฒด๊ฐ ์์ฑ๋์ง ์์ผ๋ฉด null ์ํ๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. ์ฆ, ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋์ง ์์ ์ํ์ ๋๋ค.
์ด ์คํฌ๋ฆฝํธ์ผ๊ฒฝ์ฐ์, ๋์คํธ๋ก์ด์ดํํธ ํ๋ฆฌํน์ ์ฐธ์กฐ๊ฐ ํ ๋น๋์ด์์ผ๋ฉด, ์์ฑํด๋ผ~~ ์ด ์ฝ๋์์์
์. ๋ง๋ค์ ๊ฐ์ฌํฉ๋๋ค ๊ฐ์ฒด๊ฐ ์์ฑ๋์ง ์์ผ๋ฉด null!! ๊ฐ์ฌํฉ๋๋ค