[英]How is a variable returning as “null”?
我正在查看我的代碼以嘗試解決問題,然后我發現了導致它的原因,但我無法修復它。 如下所示,我在腳本的前面將 Move1 設置為 null,並且除了我向您展示的兩個地方之外,該變量在腳本中的其他任何地方都沒有改變。
private GameObject Move1 = null;
問題是當我第一次執行Debug.Log(Move)
時,它不會返回為“null”。 但是,當我第二次調用Debug.Log(Move)
時,它確實以 null 的形式返回,我不確定為什么。
private void addVar(GameObject Move, GameObject Cyl)
{
Debug.Log(Move);
if (Move1 == null)
{
Move = Move1;
Cyl = Cyl1;
Moves.Add(Move);
Movecyls.Add(Cyl);
Debug.Log(Move);
}
我已經嘗試過private GameObject Move1;
但這不起作用。 這就是我所有的想法。 謝謝!
可能是你混淆了Move = Move1;
和Move1 = Move;
?
您的代碼原樣,並附有對正在發生的事情的一些評論。
private void addVar(GameObject Move, GameObject Cyl)
{
// The function parameter is whatever sent to this function
// It may or may not be null
Debug.Log(Move);
if (Move1 == null)
{
// The following will always result in null
// Because of the above if condition
Move = Move1;
Cyl = Cyl1;
Moves.Add(Move);
Movecyls.Add(Cyl);
// Debug value will now be null
Debug.Log(Move);
}
// Other operations
}
您在開始時記錄“移動”,但它沒有定義為 null,因此它不會記錄為 null。 第二次調試您將其設置為 null,因為“Move1”是 null,這就是您第二次獲得 null 的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.