https://chameleonstudio.tistory.com/56
์ผ๋จ์ ์ฌ๊ธฐ์ ์๋ ค์ค ๋๋ก ๋ฐ๋ผํด๋ดค๊ฑฐ๋ ?
ย ย public GameData _gameData;
ย ย public GameData gameData
ย ย {
ย ย ย ย get
ย ย ย ย {
ย ย ย ย ย ย if (_gameData == null)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย LoadGameData();
ย ย ย ย ย ย ย ย SaveGameData();
ย ย ย ย ย ย }
ย ย ย ย ย ย return _gameData;
ย ย ย ย }
ย ย }ย ย
์ฌ๊ธฐ์ _gameData๊ฐ null์ด์ฌ์ผ ๋ก๋๋ ์ธ์ด๋ธ๋ฅผ ํ๋ ๊ฑฐ์์? ์ฒ์ ์์ํ๋ฉด ๋น์ฐํ _gameData๊ฐ null์ด์ด์ ๋ก๋๋ ์ธ์ด๋ธ๊ฐ ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋๋ฐ ์๋๋๋ผ? ์์ํ ๋๋ง๋ค ๋ก๋๊ฐ ์๋๊ณ ์ด๊ธฐํ๋ ์ํ๋ก ๋ค์ ์์ํด... ์ด๋ป๊ฒ _gameData๊ฐ null์ด ์๋์ง? ์ ๊ธฐ์๋ค๊ฐ ๋ญ ๋ฃ๋ ์ฝ๋๊ฐ์๊ฒ๋ย LoadGameData()๋นผ๊ณ ๋ย ํ ์ค๋ ์๋๋ฐ..
์๋ง GameData๋ [Serializable] ์ดํธ๋ฆฌ๋ทฐํธ๊ฐ ๋ถ์ด์์๊ฑฐ ๊ฐ์๋ฐ, ์ ๋ํฐ๋ ๊ทธ๋ฐ ์ ๋ค์ด public ํ๋๋ก ์ ์ธ๋์ ๊ฒฝ์ฐ ์๋์ผ๋ก serialize๋ฅผ ํด๋ฒ๋ฆผ. ์ธ์คํํฐ์์ ํ์ธํด ๋ณด๋ฉด ๊ฐ๋ค์ด ์ด์์์ ๊ฑฐ์. ๊ทธ๋ ๊ฒ serialize๋์ด์๋ ์ ๋ณด๊ฐ ๊ฒ์ ์์ํ๊ณ ์ด๊ธฐํ ๊ณผ์ ์์ ์ค์ ์ธ์คํด์ค๋ก ๋ง๋ค์ด์ง. ๊ทธ๋์ null ์ฒดํฌ๊ฐ ์๋จ.
์ด๊ฑธ ํด๊ฒฐํ๋ ค๋ฉด "public GameData _gameData" ์ด ํ๋์๋ค๊ฐ [NonSerialized] ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ๋ถ์ด๋ฉด ๋จ.
https://docs.unity3d.com/ScriptReference/NonSerialized.html
์ ํด๊ฒฐ๋์ด์ ๊ฐ์ฌํฉ๋๋ค!
์์ _gmaedata๋ ์ public?
TMI์ธ๋ฐ null ํ ํ์์์ด if(_gameData)๋ง ํ๋๊ฒ ๋ ์ข์
? ๊ทธ๊ฑด ๊ฐ์ทจ์ธ๋ฐ ๋ญ๊ฐ ๋ ์ข๋ค๊ณ ํ ๊ฒ ์๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ ๋ ๋ช ์ํ๋๊ฒ ๊ฐ๋ ์ฑ ๋ ์ข๋ค