【发布时间】:2015-10-08 21:05:06
【问题描述】:
我很难确定我的失败之处。我认为这与我在列表中的列表有关......但我不确定。
类:
public class ChunkTerrainData
{
public int OriginX;
public int OriginZ;
public string ChunkMaterialData;
public int[,] ChunkHeightmap;
public string[,] ChunkInventory;
public List<GameObject> InventoryGameObjects;
}
代码问题:
public static List<ChunkTerrainData> ListOfChunks = new List<ChunkTerrainData>();
//Start()
ChunkData = GenerateTerrain(ThisChunkOriginX, ThisChunkOriginZ, WithChunkData);
ListOfChunks.Add(ChunkData);
//Update()
GameObject Tree;
Tree = (GameObject)Instantiate(Tree_a, InstatiateTreeStone_Position, InstatiateTreeStone_Rotation);
Tree.transform.parent = TerrainMesh.transform;
ListOfChunks[i].InventoryGameObjects.Add(Tree); //some ListOfChunks
在最后一行我得到一个错误(但转换效果很好):
NullReferenceException:对象引用未设置为对象的实例
我也做不到(因为我得到了同样的错误):
Debug.Log(ListOfChunks[i].InventoryGameObjects.Count);
什么有效(使用相同的列表):
Debug.Log(ListOfChunks.Count);
如何在列表中存储和访问这种类型的列表? afaik“树”的分配是好的(从对象到游戏对象的转换)。你能告诉我该怎么做吗? :)
编辑:也许这与 List Initialisation 有关 - 但我不知道如何在 C# 中做到这一点
【问题讨论】:
-
什么是
i?显然,该索引处有一个空对象,或者该对象的 InventoryGameObjects 列表为空。 -
for (int i = 0; i
-
所以我应该没问题:)
-
必须初始化类中的 C++ 列表中的这个“gcnew”是什么?
-
听起来
ListofChunks索引处的ChunkTerrainData为空。你能告诉我们GenerateTerrain的函数吗?