コード例 #1
0
ファイル: Chunk.cs プロジェクト: stone-SJH/brickcraft
        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);
                }
            }
        }
コード例 #2
0
ファイル: Chunk.cs プロジェクト: stone-SJH/brickcraft
 public void ClearDirtySlices()
 {
     for (int i = 0; i < NumSlices; ++i)
     {
         ChunkSlice slice = Slices[i];
         if (slice != null && !slice.IsEmpty)
         {
             slice.ClearDirtyLight();
         }
     }
 }