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(); }
public void Clear() { terrainFilter.Clear(); terrainCollider.Clear(); supportFilter.Clear(); supportCollider.Clear(); }