public void InitRenderableSlices() { for (int i = 0; i < NumSlices; ++i) { ChunkSlice slice = Slices[i]; if (!slice.IsEmpty) { slice.ClearDirtyLight(); GameObject newObject = new GameObject("ChunkSlice#" + i); ChunkSliceObjects[i] = newObject; MeshRenderer meshRenderer = newObject.AddComponent(typeof(MeshRenderer)) as MeshRenderer; meshRenderer.material = WorldBehaviour.BlockMaterial; meshRenderer.material.mainTexture = WorldBehaviour.AtlasTexture; meshRenderer.sharedMaterial = WorldBehaviour.BlockMaterial; newObject.AddComponent(typeof(MeshFilter)); newObject.AddComponent <MeshCollider>(); Vector3 pos = new Vector3(ChunkObject.transform.position.x, ChunkObject.transform.position.y + (i * Chunk.SliceHeight), ChunkObject.transform.position.z); if (WorldBehaviour.mode == 3) { pos.x = pos.x * Server.brickWidth; pos.y = pos.y * Server.brickHeight; pos.z = pos.z * Server.brickWidth; } newObject.transform.position = pos; newObject.transform.parent = ChunkObject.transform; slice.renderer = meshRenderer; slice.CreateBoundsBox(newObject.transform); } } }
public void ClearDirtySlices() { for (int i = 0; i < NumSlices; ++i) { ChunkSlice slice = Slices[i]; if (slice != null && !slice.IsEmpty) { slice.ClearDirtyLight(); } } }