我有一個循環從列表中搜索特定的對象,然後我把它存儲在一個全局變量。但是,當我試圖獲取它總是空,遊戲崩潰。統一對象已被銷燬
SpecialItem pickedItem; // (global variable)
void OnGUI()
{
for loop (all objects) // Idictionary<SpecialItem, string>
{
pickedItem = Instantiate(myItem) as SpecialItem;
Debug.Log("this->" + pickedItem.name.ToString()); // ERROR
}
}
團結錯誤是:MissingReferenceException:類型的對象 「SpecialItem」已被破壞,但你仍然試圖訪問 它。
我認爲這是因爲在foreach的,所以我已經通過正常的更換for循環
有人可以解釋我爲什麼出現這種情況?可以做些什麼來解決?我最初的想法是與對象本身一起工作,但似乎我不能,所以我試着做一個副本。
我試着在pickItem =後面進行調試,並且我遇到了同樣的問題......使用SpecialItem和(SpecialItem)cast之間有區別嗎?我很確定這個對象是從那個類型開始的,因爲字典本身來自SpecialItem – 2013-03-09 21:10:16
區別在於(SpecialItem)強制轉換會拋出一個Exception,其中「as」只會將該對象賦值爲null。 – Jras 2013-03-09 21:14:57
您是否可以提供「Instantiate(myItem)」 – Jras 2013-03-09 21:17:20