【发布时间】:2014-12-01 18:38:49
【问题描述】:
在游戏中,玩家可以砍树。然后我在它的位置实例化一棵倒下的树。
我从地形列表中删除树并刷新地形,如下所示:
var treeInstancesToRemove = new List<TreeInstance>(terrain.treeInstances);
treeInstancesToRemove.RemoveAt(closestTreeIndex);
terrain.treeInstances = treeInstancesToRemove.ToArray();
// I refresh the terrain so the collider gets removed...
float[,] heights = terrain.GetHeights(0, 0, 0, 0);
terrain.SetHeights(0, 0, heights);
地形非常大...这意味着每当一棵树被砍伐时,游戏就会冻结几秒钟然后恢复(随着它刷新)。有没有更快或更有效的方法我可以看看?每砍伐一棵树后冻结不是很理想吗?
非常感谢!
【问题讨论】:
标签: c# unity3d refresh terrain