|
@@ -14,6 +14,7 @@ public class PlaneGenerator : MonoBehaviour
|
|
|
void Start()
|
|
void Start()
|
|
|
{
|
|
{
|
|
|
BuildRootQuads();
|
|
BuildRootQuads();
|
|
|
|
|
+ UpdateMeshes();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Update is called once per frame
|
|
// Update is called once per frame
|
|
@@ -23,36 +24,54 @@ public class PlaneGenerator : MonoBehaviour
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void BuildRootQuads()
|
|
private void BuildRootQuads()
|
|
|
|
|
+ {
|
|
|
|
|
+ quads = new List<Quad>();
|
|
|
|
|
+
|
|
|
|
|
+ var quad = BuildQuad("quadY");
|
|
|
|
|
+ quads.Add(quad);
|
|
|
|
|
+ RotatePlaneY(quad.Vertices);
|
|
|
|
|
+
|
|
|
|
|
+ quad = BuildQuad("quadY1");
|
|
|
|
|
+ quads.Add(quad);
|
|
|
|
|
+ RotatePlaneY1(quad.Vertices);
|
|
|
|
|
+
|
|
|
|
|
+ quad = BuildQuad("quadZ");
|
|
|
|
|
+ quads.Add(quad);
|
|
|
|
|
+ RotatePlaneZ(quad.Vertices);
|
|
|
|
|
+
|
|
|
|
|
+ quad = BuildQuad("quadZ1");
|
|
|
|
|
+ quads.Add(quad);
|
|
|
|
|
+ RotatePlaneZ1(quad.Vertices);
|
|
|
|
|
+
|
|
|
|
|
+ quad = BuildQuad("quadX");
|
|
|
|
|
+ quads.Add(quad);
|
|
|
|
|
+ RotatePlaneX(quad.Vertices);
|
|
|
|
|
+
|
|
|
|
|
+ quad = BuildQuad("quadX1");
|
|
|
|
|
+ quads.Add(quad);
|
|
|
|
|
+ RotatePlaneX1(quad.Vertices);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private Quad BuildQuad(string name)
|
|
|
{
|
|
{
|
|
|
var (vertices, uv) = CreateVertices();
|
|
var (vertices, uv) = CreateVertices();
|
|
|
var triangles = CreateTriangles();
|
|
var triangles = CreateTriangles();
|
|
|
- RotatePlaneY(vertices);
|
|
|
|
|
- CreateMesh("mesh_Y", vertices, uv, triangles);
|
|
|
|
|
-
|
|
|
|
|
- (vertices, uv) = CreateVertices();
|
|
|
|
|
- triangles = CreateTriangles();
|
|
|
|
|
- RotatePlaneY1(vertices);
|
|
|
|
|
- CreateMesh("mesh_Y1", vertices, uv, triangles);
|
|
|
|
|
-
|
|
|
|
|
- (vertices, uv) = CreateVertices();
|
|
|
|
|
- triangles = CreateTriangles();
|
|
|
|
|
- RotatePlaneZ(vertices);
|
|
|
|
|
- CreateMesh("mesh_Z", vertices, uv, triangles);
|
|
|
|
|
-
|
|
|
|
|
- (vertices, uv) = CreateVertices();
|
|
|
|
|
- triangles = CreateTriangles();
|
|
|
|
|
- RotatePlaneZ1(vertices);
|
|
|
|
|
- CreateMesh("mesh_Z1", vertices, uv, triangles);
|
|
|
|
|
-
|
|
|
|
|
- (vertices, uv) = CreateVertices();
|
|
|
|
|
- triangles = CreateTriangles();
|
|
|
|
|
- RotatePlaneX(vertices);
|
|
|
|
|
- CreateMesh("mesh_X", vertices, uv, triangles);
|
|
|
|
|
-
|
|
|
|
|
- (vertices, uv) = CreateVertices();
|
|
|
|
|
- triangles = CreateTriangles();
|
|
|
|
|
- RotatePlaneX1(vertices);
|
|
|
|
|
- CreateMesh("mesh_X1", vertices, uv, triangles);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ return new Quad
|
|
|
|
|
+ {
|
|
|
|
|
+ Name = name,
|
|
|
|
|
+ Vertices = vertices,
|
|
|
|
|
+ Triangles = triangles,
|
|
|
|
|
+ Uv = uv
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void UpdateMeshes()
|
|
|
|
|
+ {
|
|
|
|
|
+ foreach (var quad in quads)
|
|
|
|
|
+ {
|
|
|
|
|
+ CreateMesh(quad.Name, quad.Vertices, quad.Uv, quad.Triangles);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private (Vector3[] vertices, Vector2[] uv) CreateVertices()
|
|
private (Vector3[] vertices, Vector2[] uv) CreateVertices()
|