我写了一个脚本,在舞台上生成随机浮雕:
public class ChunkLoader : MonoBehaviour
{
public int width = 512;
public int len = 512;
public int height = 26;
public float[] JR = new float[3] { 0.01f, 0.1f, 2f};
public Material material;
void Start()
{
TerrainData tdata = new TerrainData();
tdata.size = new Vector3(width, height, len);
HMapGenerator(tdata, Math.Max(width, len) * 2 + 1);
GameObject terrobj = Terrain.CreateTerrainGameObject(tdata);
tdata = null;
GC.Collect();
terrobj.name = "Chunk";
terrobj.GetComponent<Terrain>().materialTemplate = material;
}
TerrainData HMapGenerator(TerrainData tdata, int hmRes)
{
//Генератор рандомной карты высот.
}
}
但是,由于某种原因,它工作了 3 次(您可以确保是否将控制台输出添加到脚本),并且在前两次中,它生成大小为 0x300x0 的网格,而不管传递的参数如何。
为什么会发生这种情况以及如何解决?
多亏了评论中的提示,我意识到有必要将日志写入日志,而不仅仅是文本,而是一些有用的东西。例如,运行脚本的对象的名称:
原来,脚本的两个额外副本不知何故附加到了相机上。