void PopulateOctree(List <GameObject> gameObjects) { GameObject curGO; MeshFilter curMeshFilter; Triangle[] curTris; APAOctree finalNode; for (int i = 0; i < gameObjects.Count; i++) { curGO = gameObjects[i]; if (curGO == null || curGO.name.Contains("Combined Mesh") || curGO.name == null) { continue; } curMeshFilter = curGO.GetComponent <MeshFilter>(); if (!curMeshFilter) { continue; } curTris = new Triangle[] { }; curTris = GetTriangles(curGO); for (int k = 0; k < curTris.Length; k++) { finalNode = octree.IndexTriangle(curTris[k]); finalNode.AddTriangle(curTris[k]); } } Debug.Log("Created APAOctree Database"); Debug.Log("Total Indexed Triangles: " + GetTriangleCount(octree)); }
IEnumerator PopulateOctree(CallbackMethod del) { GameObject[] gameObjects = GameObject.FindObjectsOfType(typeof(GameObject)) as GameObject[]; GameObject curGO; Triangle[] curTris = new Triangle[] {}; MeshFilter curMeshFilter = null; APAOctree finalNode; for (int i = 0; i < gameObjects.Length; i++) { curGO = gameObjects [i]; if (curGO == null || curGO.name.Contains("Combined Mesh") || curGO.name == null || curGO.layer != LayerMask.NameToLayer("Raycast")) { continue; } curMeshFilter = curGO.GetComponent <MeshFilter>(); if (!curMeshFilter) { continue; } curTris = new Triangle[] {}; curTris = GetTriangles(curGO); for (int k = 0; k < curTris.Length; k++) { finalNode = octree.IndexTriangle(curTris[k]); finalNode.AddTriangle(curTris[k]); } if (i % objectsPerChunk == 1) { yield return(0); } } del(); Debug.Log("Created Database"); Debug.Log("Total Indexed Triangles: " + GetTriangleCount(octree)); }