0
我有一個MonoBehavior屬性,按以下方式確定:團結的行爲屬性,檢查沒有設置,打印空但不== NULL
public GameObject whatever = null;
我將它設置爲實際的遊戲物體上的參考其中一些將其留在其他地方。基本上,它是一個可選屬性。現在,當我在程序中測試時會發生最瘋狂的事情:
Debug.Log(whatever + " " + (whatever == null));
這打印:「null False」。我不知道如何繼續。我想要的是能夠在代碼中對其進行空測試。 (我曾嘗試刪除= null,並沒有改變)。統一似乎正在創造一些包裝或什麼。這是一個完整的還原再現問題:
using UnityEngine;
using System.Collections;
public class TestBehavior : MonoBehaviour
{
public GameObject whatever;
// Use this for initialization
void Start()
{
Debug.Log("logical: " + whatever + " " + (whatever == null)); // prints null True
Print(whatever);
}
public void Print<T>(T anObject)
{
Debug.Log("Now it gets nuts: " + anObject + " " + (anObject == null)); // prints null False
}
}
'null'在連接期間被當作空字符串對待,所以它應該輸出「false」。 –
另外,您不應該將泛型參數與'null'進行比較,請參閱http://stackoverflow.com/a/864860/238419。雖然,這仍然不應該導致你看到的問題.. –