将游戏对象分配给游戏对象的 2D 数组将返回 null

assigning a GameObject to a 2D array of GameObjects return null

提问人:Anthony Ghosn 提问时间:6/22/2023 更新时间:6/22/2023 访问量:43

问:

我有一个 GameObject 的 2D 数组,我想从 2 for 循环中分配一个游戏对象,但分配返回 null。

    void PlaceBricks(){
    placedBricksPositions=new GameObject[columnNumber*2,rowNumber*2]; //doubled the size just to make sure it fits
    FixBorders();
    List<GameObject> bricksWithRates=GetBrickWithRatesList();

    int xCounter=0;

    for(float x=topRight.x;x>=bottomLeft.x;x-=(topRight.x-bottomLeft.x)/columnNumber){
        int yCounter=0;Debug.Log("hola");
        for(float y=topRight.y;y>=bottomLeft.y;y-=(topRight.y-bottomLeft.y)/rowNumber){
            placedBricksPositions[xCounter,yCounter++]=Instantiate(
                GetBrickToSpawn(bricksWithRates),new Vector3(x,y,0),Quaternion.identity);
            
            Debug.Log(placedBricksPositions[xCounter,yCounter]);
        }
        xCounter++;
    }
}

游戏对象正在正常实例化,并将其分配给普通游戏对象是有效的,但是当将该游戏对象分配给数组时,它也会返回 null。

C# unity-game-engine 多维数组 null 实例化

评论

0赞 BugFinder 6/22/2023
是否确定?您确定它没有将其分配给 ycounter,然后添加 1,因此确定 ycounter+1 为 null,但原始 ycounter 得到一个对象?
0赞 Anthony Ghosn 6/22/2023
@BugFinder是的,这是对的,后来才想通

答:

0赞 Anthony Ghosn 6/22/2023 #1

我增加了 yCounter,然后使用它进行调试,而它还没有分配,所以这是一个调试问题