Quantcast
Channel: Questions in topic: "tree"
Viewing all articles
Browse latest Browse all 513

How to improve the Performance of Removing Trees during runtime?

$
0
0
Hi there, do you see any way how to improve the performance of this method? The moment it reaches the `data.treeInstances = _treeList.ToArray();` the game freezes for 1-3 seconds. And I don't want to imagine how long it will freeze on my team member's PCs... Some explanaition: - there are around 7000 trees, created with help of the terrain tool - the trees that shall be removed were calculated in another method and added to the list of the area included the trees. public static IEnumerator RemoveTrees() { TerrainData data = Terrain.activeTerrain.terrainData; TreeInstance[] treeInstances = data.treeInstances; List treesForRemoval = new List(); foreach (BuildingArea area in _buildingAreas) { yield return new WaitForEndOfFrame(); if (area.IsBought == true) { if (area.HasTrees == true) { treesForRemoval.AddRange(area.treeRemovalList.ToArray()); area.HasTrees = false; } } } // remove trees _treeList.RemoveAll(x => treesForRemoval.Contains(x)); yield return new WaitForEndOfFrame(); // replace trees on terrain data.treeInstances = _treeList.ToArray(); yield return null; }

Viewing all articles
Browse latest Browse all 513

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>