if(!keyPhaseCurserListDic.ContainsKey(CurrentKeyPhase))
{
List<GameObject> temp = new List<GameObject>();
for (int i = 0; i < Buttons.transform.childCount; ++i)
temp.Add(Buttons.transform.GetChild(i).gameObject);
keyPhaseCurserListDic[CurrentKeyPhase] = temp;
}
selectCurserList = keyPhaseCurserListDic[CurrentKeyPhase];
enum์ผ๋ก ๋์ด์๋ KeyPhase๊ฐ ์๊ณ ํ์ฌ KeyPhase๋ฅผ ๋ด๊ณ ์๋ CurrentKeyPhase ๋ณ์๊ฐ ์๋๋ฐ
KeyPhase๋ณ๋ก ๊ฒ์ ์ค๋ธ์ ํธ ์ ์ฅํด์ ์ฌ์ฉํ๋ค๊ฐ ํด๋น ํ์ด์ฆ์์ ๋ถ๋ฌ์ค๋ คํ๋์ค์
ํน์ ํ์ด์ฆ๊ฐ ๋๋ฉด ์์ ์ฝ๋์ฒ๋ผ ํค๊ฐ ์กฐ์ฌํด์ ์์ผ๋ฉด ๋ด์์ฃผ๋ ค ํ๋๋ฐ
๋งจ ์ฒ์์ ๋น์ฐํ ์์ผ๋๊น ์ ๋ด์์ฃผ๊ณ selectCurserList์ ์ ๋ค์ด๊ฐ๋๋ฐ
๋ค๋ฅธ ํ์ด์ฆ์๋ค๊ฐ ๋ค์ ํด๋น ํ์ด์ฆ๋ก ๋์์ค๋ฉด ํด๋น ํค๊ฐ์ value๊ฐ ๊ฒ์์ค๋ธ์ ํธ๋ฆฌ์คํธ์ธ๋ฐ ๋ฆฌ์คํธ๊ฐ ๋น์์ ธ์์...
์ ๊ตฌ๋ฌธ์ด ๋ค์ด์๋ ํจ์๋ Update๋ฌธ์ด ์๋๋ผ ํค ๋ณ๊ฒฝ๋๋ง ํ๋ฒ ํธ์ถ๋๊ณ ย
์ ๋์ ๋๋ฆฌ๋ start์์ newํด์ฃผ๋๊ฑฐ ๋ง๊ณ ๋ ๋ฐ๋ก ์ด๊ธฐํ ํด์ฃผ๊ฑฐ๋ ๊ฐ ๋ณ๊ฒฝ ํด์ฃผ๋๊ฒ๋ ์์
์ด์ ์๋์ฌ๋ ใ ใ
keyPhaseCurserListDic[CurrentKeyPhase] = temp; ์ด๋ถ๋ถ์ด ์ข ์ ๊ฒฝ์ฐ์ด๋๋ฐ? ๋์ ๋๋ฆฌ.add๋ก ๊ฐ ๋ฃ์ด๋ด
์คํค ์ ์๋ง
c++๋ ๊ทธ๋ ๊ฒ ๋ฃ์ด๋ ๋๋๊ฑธ๋ก ๊ธฐ์ตํ๋๋ฐ c#์ .add๋ฅผ ์จ์ผํ ํ ๋ฐ
C#๋ Dic[key] = value ์ด๋ ๊ฒ ํ๋ฉด ํ ๋น๋๋๊ฑธ๋ก ์๋๋ฐ ์๋?
ํด๋ดค๋๋ฐ add๋กํด๋ ๋๊ฐ๋ค...
๋ฆฌ์คํธ๋ก ConvertAll ์ ์ด์ฉํด Deep Copy ํด๋ด
์ ์๋ง
๋ด๊ฐ ๋ชป์ฐ๋๊ฑด๊ฐ... ์๋๋ค
keyPhaseCurserListDic[CurrentKeyPhase] = temp.ConvertAll(GameObject => GameObject); selectCurserList = keyPhaseCurserListDic[CurrentKeyPhase]; ์ด๋ ๊ฒ ํ๋๊ฑฐ ๋ง์?
๋ณธ๋ฌธ์ด๋์ ์ข ์๊ด์๋ ์๋ฆฌ์ด๊ธด ํ๋ฐ, ๋์ ๋๋ฆฌ์ ๊ฐ ๋์ ํ ๋ dict[key] = value; ์ด๋ฐ์์ผ๋ก ํ๋ฉด ๋ด๋ถ์ ์ผ๋ก ํด๋น key๊ฐ ์กด์ฌ ํ๋์ง ์ํ๋์ง .Containskey(key)๋ฅผ ์คํํด์ ์ฒดํฌ๋ฅผ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ ์์์๋ ์ ์๋ฏธํ ์ค๋ฒํค๋๋ฅผ ์ ๋ฐํ ์๋ ์์ผ๋ ์ต์ด ๋์ ์ ๊ฒฝ์ฐ์ add๊ฐ ์กฐ๊ธ์ด๋๋ง ํผํฌ๋จผ์ค๋ฅผ ์๋ ์ ์์ด. ๊ทธ๋ผ ์๊ณ ํ ๊ฒ์ ๊ธฐ๋ํ ๊ฒก.