์๋ฒ์์ ์ ์ด์จ์ผ๋ก ๋ฐ์ดํฐ ๋ฐ์๊ฐ์ ๋ฐ์ดํฐ๋งค๋์ ์ ๊ฐฏ์๋งํผ ๋ฐฐ์ด ์ ์ธํ๊ณ
๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ฑฐ๋ ?
์ธ์คํํฐ์์๋ณด๋ฉด ๊ฐ์ด ์ ๋ค์ด๊ฐ๊ฒ ํ์ธ์ด ๋ฌ์ด.
์ด์ ๊ทธ ๋ค์ด๊ฐ ๊ฐ์ผ๋ก ๋ด๊ฐ ์ํ๋๊ณณ์ ๋ฃ์ด์ฃผ๋ ค๊ณ ํ๋๋ฐ ์ ๊ธฐ์ ๋๋ฒ๊ทธ ์ฐ์ด๋ดค๋๋ฐ ๋ ์งํ์ด ์๋๊ฑฐ๋ ?
์ด๊ฑฐ ์ด๋์ ๋ถํฐ ์๋ชป๋๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ.. ๋์ ์ข..
์งํ์ด ์๋๋ค๋ ๋ฐ ๋ฒ๊ทธ๊ฐ ๊ฑธ๋ฆฌ๋๊ฑด์ง ์๋๋ฉด ์ค๋ฅ๊ฐ ์๋๊ฑด์ง ์ฝ์ ๋ฉ์์ง๋ฅผ ๋์์ค์ผ ๋๊ณ
IndexOutOfRangeException: Index was outside the bounds of the array. ์ธ๋ฑ์ค๊ฐ ๋ฐฐ์ด ๊ฒฝ๊ณ๋ฅผ ๋ฒ์ด๋ฌ๋ค๋๋ฐ ๋ง์ง๋ง ์ฌ์ง์์ i์ 0 ๋ค์ด๊ฐ๊ฑฐ๋ ? ๊ทผ๋ฐ ์ด๋ผ
์ผ๋จ ๋์ฒ๋ผ ์ผ์ผํ ๋ฐฐ์ด๋ก ์ ์ธํด์ ๋ฐ์ดํฐ ๊ด๋ฆฌํ๋๊ฑฐ ์๋. ์ปจํ ์ธ ๋ฅผ ContentData๋ก ํ๋๋ก ๋ฌถ์๋ค์์ DataManager์์ List contents = new List()๋ฅผ ์จ์ ๊ด๋ฆฌํด
OutOfIndex๋๋ฉด List ์จ. Json์์ Cout๋ฐ์์๋ ๋๊ฐ ์ ๋ํฐ์์ 4๊ฐ ๋ผ๊ณ ์ ์ธํ๋ฉด 4๊ฐ๋ก ๊ณ ์ ์ ์ด๊ฑด ์ ๋ํฐ ํน์ฑ์
๋ฐ์ดํฐ ๋งค๋์ ์์ ๊ตฌ์กฐ์ฒด๋ก ContentData๋ฅผ ์ ์ธํ๊ณ ๊ทธ ์์๋ค๊ฐ ๊ด๋ฆฌํ๋ผ๋๊ฑฐ์?
for๋ฌธ ์์์ ContentData data = new contentData(); data.Id = vc_id; .. ๋ฑ๋ฑ ๋ค ๋ฃ์๋ค์์ DataManager.contents.Add(data); ์ด๋ฐ์์ผ๋ก ๋ฃ์ด๋ผ
์.. ๋ฆฌ์คํธ ๊ฑฐ์ ์์จ๋ด์ ์๋ฏธ๋ ์๊ฒ ๋๋ฐ ์ง์ง๋ฅผ ๋ชปํ๊ฒ ๋ค ์ ์ฅ..
Cํ๋ฐ์์ ๋ฆฌ์คํธ๋ float๋ int๊ธ์ผ๋ก ์ค์ํ๋
๋ฌผ๋ก ๊ณผ์ฅ์ข ๋ณดํ์
๋ฐ์ดํฐ ๋ฉ๋์ ์์๋ค ๋ฃ๋์ง ๋ฐ๋ก ๋นผ๋์ง DataManager๊ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌํ๋ ๋งค๋์ ๋ผ๋ฉด ๋๊ฐ ์ ์ผ์ผํ ๋ฐฐ์ด ์ ์ธํ๊ฑฐ๋ฅผ ๋ฐ์ดํฐ ํ๋ฉ์ด๋ก ๋ฌถ์ด์ List๋ก ๊ด๋ฆฌํด
๋ฆฌ์คํธ๋ ํฌ๊ธฐ๊ฐ ๋ณํ๋ ๋ฐฐ์ด์ด๋ผ๊ณ ์ผ๋จ ์์๋ฌ๋ผ. ๋ฐฐ์ด์ ํ๋ฒ ํฌ๊ธฐ๊ฐ ์ ํด์ง๋ฉด ์๋ฐ๋๋๋ฐ List๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๊ฑฐ๋ ๋์ฌ๋ ํฌ๊ธฐ๊ฐ ๋ฐ๋์์์.
๋ฐ์ดํฐ ๋งค๋์ ์์ ๋ฆฌ์คํธ๋ก ์ ์ธํ๋๊ฑฐ ์์ ํ๋ฒ๋ง ์ ์ด์ค์ ์์? ...
OutOfIndex๋ ๋๊ฐ ๋ฐฐ์ด ํฌ๊ธฐ ๋ฐ์ผ๋ก๊น์ง ์ ๊ทผํ ๋ ์๊ธฐ๋ ์ค๋ฅ๊ณ ๋๊ฐ ์ ๋ํฐ์์ ํฌ๊ธฐ๋ฅผ 4๋กค ์ก์๊ธฐ๋๋ฌธ์ Json์ผ๋ก ๋ฐ์์จ ๋ฐ์ดํฐ๊ฐ 4๊ฐ ์ด์์ด๋ฉด ์ค๋ฅ๊ฐ์๊ธฐ๋๊ฑฐ์. List์จ
List contents = new List();
์๋ ๊บฝ์ ์๋ค์ด๊ฐ๋ค List{ContentData} contents = List{ContentsData}(); {}๋ฅผ '<>' ๋ก ๋ฐ๊ฟ
์ผ๋จ CsharpStudy๊ฐ์ ๋ฌธ๋ฒํธ ํ๋ฒ ์ ๋ ํ๊ณ ์ List์ฌ์ฉํ๋๊ฑฐ๋ ๋ชจ๋ฅด๋ฉด ๊ฐ๋ฐํ๋๋ฐ ์ฐจ์ง๋ง์ด์๊น.
๋ฆฌ์คํธ ๋๋ถ๋ถ ๋ฑ๊ฒจ ์ค๊ธฐ๋ง ํด๋ด์.. ์ง์ ์ง๋๊ฑด ์ฒ์์.. ใ ใ .. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฌ
CsharpStudy ๋ฌธ๋ฒํธ ๊ฐ๋๋ฐ ์ ๋ฆฌ์คํธ ์๋ณด์ด์ง..
์ ๋๋ฆญ ์์ผ๋ฉด ์ฐพ์๋ณด๊ณ , ์์ผ๋ฉด ๊ตฌ๊ธ๋ก c# List ๋ก ๊ฒ์ํด๋ ์๋ฃ๋ ํ๊ฐ๋์ด๋ค ๊ฒ์ด์ผ
์๋.. ๋ฆฌ์คํธ๋ก ๋ฐ๊ฟจ๋๋ฐ๋ ์ ๊ธฐ ๊ฐ์๋ถ๋ถ์์ ์ค๋ฅ๋จ ๋ญ์ง..
๋ ๊ทผ๋ฐ i๋ ์ด๋์ ๊ฐ์ ธ์๋
debug.logํด์ ๋ก๊ทธ์ฐ์ด๋ผ
๋ฆฌ์คํธ๋ ์๋ฃ๊ตฌ์กฐ์์ ๋ฐฐ์์ผ๋จ
์๋ฌ ๋จ๊ธฐ ์ ์ ๋ฐฐ์ด ํฌ๊ธฐ ์ผ๋ง์ธ์ง ๋ก๊ทธ ๋์๋ด๋ฐ
๋ฐฐ์ด ํฌ๊ธฐ 4๋ก ์ ๋๋ก ๋ค์ด๊ฐ
์ฝ๋๊ฐ ๋๋ฌด ์ผ๋ถ๋ผ.. ์ด๋๊ฐ ๋ฌธ์ ์ธ์ง ์์๊ฐ ์๋น
ํ์คํ๊ฑด ์ง๊ธ datamanager์ ๋ฐ์ดํฐ๊ฐ ๋ค ๋ค์ด๊ฐ๊ฑฐ๊น์ง ํ์ธ๋จ. ์ด์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๋ด๊ฐ ์ํ๋ UI๋ถ๋ถ์ ๋ฟ๋ฆฌ๋๊ฑธ ํ๋๊ฑด๋ฐ ๊ทธ๊ณณ์์ ๊ฐ์ด ์๋ค์ด๊ฐ๋์ค์
๋๋์ ์ผ๋ก ์์ฝ์ก๋ ๊ตฌ๋ฌธ ์คํ ์์๊ฐ ๋ค๋ก ๋ฐ๋ฆฐ๊ฑฐ๊ฐ์๋ฐ
๋ถ๋ช ํ ๋ฐ์ดํฐ๋งค๋์ ์ ๋ฐ์ดํฐ๊ฐ ๋ค ๋ค์ด์๋๋ฐ ์ UI์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ง์ด ๋ฃ๋ ๋ถ๋ถ์์ ์ค๋ฅ๊ฐ ๋์ง..
์ธ์คํํฐ๋ก ๋ณด์ง๋ง๊ณ ๋๋ฒ๊ฑฐ๊ฐ ๊ทธ์๋ฆฌ ๋๋ฌํ์๋ ๊ฐ๋ค์ด ๋ค์ด์๋์ง ๋ด๋ผ ๊ทธ๊ฒ๋จผ์ ์
๊ทธ๋ฆฌ๊ณ ๋๋ฒ๊ฑฐ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ํ๋ฅผ ๋ด์ผ์ง ์ธ์คํํฐ๋ก ๋ณด๋ฉด ์ด์ฉ์๋๊ฑฐ๋
์ด์๊ธฐ ๋ฐ์ดํฐ ๋ก๋ ์ํ๊ณ ๋ฟ๋ฆฌ๋๊ฑฐ ๋จผ์ ํ๋๊ฑฐ ๊ฐ์๋ฐ
์์ ์ ๋ค๊บผ ๋ค ์ํํด๋ ์๋๋ฉด ๋ฐฑํผ์
์๋๋ฉด ์นํต์ ์ ํต์ ์ํ์ ๋ฐ๋ผ ๋๋ ์ด ์์ ์ ์์ผ๋ bool๊ฐ์ผ๋ก ๋ถ๋ฌ ์์ผ๋ฉด true, ๋ฟ๋ฆฌ๋ฉด false ์ด๋ฐ์์ผ๋ก ํ๋๊ทธ ํ๋ ๋๊ณ , if (flag == true) ์ผ๋๋ง ๋ถ๋ฌ์ค๋๋ก ํ๋๋ฐฉ๋ฒ์ ์จ๋ด
์๋๋ฉด ์นํต์ ํ๊ธฐ์ ์ List ํด๋ฆฌ์ด ์น ํ๋ค์์ if (List.Count() > 0 ) ์ผ๋๋ง ํด๋ ๋ ๊บผ๊ฐ์. ์๋๋ฉด InvokeRepeating("ํจ์์ด๋ฆ", ์คํ์๊ฐ, ๋ฐ๋ณต์๊ฐ) ์จ๋ณด๋์ง
์๋ฌดํผ ์น์ชฝ์ด๋ ์ฐ๋ํ ๋๋ ๋ฌด๊ฒฐ์ฑ๊ฒ์ฌ๋ ์ผ๋ํด ๋ฌ์ผ๋จ