예제 #1
0
        private void RefreshCubeMesh(BlockType type, byte extendId)
        {
            filterMeshData.Clear();
            int x = 0, y = 0, z = 0;

            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y + 0.5f, z + 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y + 0.5f, z + 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y + 0.5f, z - 0.5f));
            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y + 0.5f, z - 0.5f));

            AddTriangles(filterMeshData);
            AddUV(filterMeshData, type, extendId, Direction.up);

            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y - 0.5f, z - 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y - 0.5f, z - 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y - 0.5f, z + 0.5f));
            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y - 0.5f, z + 0.5f));
            AddTriangles(filterMeshData);
            AddUV(filterMeshData, type, extendId, Direction.down);

            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y - 0.5f, z - 0.5f));
            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y - 0.5f, z + 0.5f));
            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y + 0.5f, z + 0.5f));
            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y + 0.5f, z - 0.5f));
            AddTriangles(filterMeshData);
            AddUV(filterMeshData, type, extendId, Direction.left);

            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y - 0.5f, z + 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y - 0.5f, z - 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y + 0.5f, z - 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y + 0.5f, z + 0.5f));
            AddTriangles(filterMeshData);
            AddUV(filterMeshData, type, extendId, Direction.right);

            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y - 0.5f, z + 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y - 0.5f, z + 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y + 0.5f, z + 0.5f));
            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y + 0.5f, z + 0.5f));
            AddTriangles(filterMeshData);
            AddUV(filterMeshData, type, extendId, Direction.front);

            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y - 0.5f, z - 0.5f));
            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y - 0.5f, z - 0.5f));
            filterMeshData.vertices.Add(new Vector3(x - 0.5f, y + 0.5f, z - 0.5f));
            filterMeshData.vertices.Add(new Vector3(x + 0.5f, y + 0.5f, z - 0.5f));
            AddTriangles(filterMeshData);
            AddUV(filterMeshData, type, extendId, Direction.back);

            MeshFilter filter = _cube.GetComponent <MeshFilter>();

            filter.mesh.vertices  = filterMeshData.vertices.ToArray();
            filter.mesh.triangles = filterMeshData.triangles.ToArray();
            filter.mesh.uv        = filterMeshData.uv.ToArray();
        }
예제 #2
0
 public void Clear()
 {
     terrainFilter.Clear();
     terrainCollider.Clear();
     supportFilter.Clear();
     supportCollider.Clear();
 }