public Subchunk GetSubchunk(SubchunkCoord sc) { Chunk superChunk = GetChunk(sc.superChunkCoord); if (superChunk != null) { return(superChunk.GetSubchunk(sc.subchunkIndex)); } else { return(null); } }
public Subchunk(Chunk superChunk, World world, byte subchunkIndex, Material[] materials) { subchunkObject = new GameObject(); this.superChunk = superChunk; this.world = world; meshFilter = subchunkObject.AddComponent <MeshFilter>(); meshRenderer = subchunkObject.AddComponent <MeshRenderer>(); this.materials = materials; meshRenderer.materials = materials; subchunkObject.transform.SetParent(superChunk.chunkObject.transform); subchunkObject.transform.position = new Vector3(superChunk.position.x, subchunkIndex * VoxelData.ChunkSubdivisionHeight, superChunk.position.z); subchunkObject.name = "Subchunk " + subchunkIndex; this.subchunkIndex = subchunkIndex; position = subchunkObject.transform.position; coord = new SubchunkCoord(superChunk.coord, subchunkIndex); }