我正在創建一個吉他選項卡程序。您選擇音符(遊戲對象),輸入和絃名稱(字符串),然後按按鈕將「和絃」添加到列表中。將變量添加到沒有實例化的數組/列表中
Chord類只是一個String和一個GameObjects列表。我使用currentChord來保存當前的選擇/名稱。
當我選擇一個筆記,我將它添加到currentChord.selectedList。
當我鍵入一個名稱時,我將它設爲currentChord.name。當我點擊一個按鈕時,currentChord被添加到allChords(allChords.Add(currentChord))。
問題是它是實例化的。所以,當我點擊添加不同的選擇/名稱時,allChords.notes列表中所有內容的選擇都會更改...
我必須使用「新」關鍵字嗎?
如果我複製currentChord ,Chord的字符串/列表仍然是實例化的嗎?所以我必須創建一個字符串/列表變量的新副本,然後將它們設置爲Chord變量? –
st4rdog
@ st4rdog:如果你複製'currentChord'變量,你只需要複製對象的引用,所以你仍然只有一個對象。您必須創建一個新實例才能獲得副本。如果'GameObject'列表可以更改,則必須創建一個新列表,而不僅僅是複製引用。如果每個「GameObject」都可以更改,則必須創建每個對象的新實例,而不僅僅是將引用複製到新列表中。 – Guffa