В игре игроки могут рубить деревья. Затем я создаю экземпляр падающего дерева на его месте.
Я удаляю дерево из списка ландшафта и обновляю ландшафт следующим образом:
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);
Ландшафт ОЧЕНЬ БОЛЬШОЙ... Это означает, что всякий раз, когда дерево рубится, игра зависает на несколько секунд, а затем возобновляется (по мере обновления). Есть ли более быстрый или эффективный способ, на который я мог бы взглянуть? Заморозки после каждого срубленного дерева — это не идеально?
ЗАРАНЕЕ БОЛЬШОЕ СПАСИБО!