6using System.Collections;
10 [RequireComponent(typeof(MeshFilter))]
11 [RequireComponent(typeof(MeshRenderer))]
14 [Tooltip(
"This script generates a grid mesh on load.")]
26 GetComponent<MeshFilter>().sharedMesh = GridMesh(
lines,
scale);
27 GetComponent<MeshRenderer>().sharedMaterial =
gridMaterial;
28 GetComponent<MeshRenderer>().sharedMaterial.color =
gridColor;
30 transform.position = Vector3.zero;
36 Mesh GridMesh(
int lineCount,
float scale)
38 float half = (lineCount/2f) *
scale;
42 Vector3[]
lines =
new Vector3[lineCount * 4];
43 Vector3[] normals =
new Vector3[lineCount * 4];
44 Vector2[] uv =
new Vector2[lineCount * 4];
45 int[] indices =
new int[lineCount * 4];
48 for(
int y = 0; y < lineCount; y++)
51 uv[n] = y % 10 == 0 ? Vector2.one : Vector2.zero;
52 lines[n++] =
new Vector3( y *
scale - half, 0f, -half );
55 uv[n] = y % 10 == 0 ? Vector2.one : Vector2.zero;
56 lines[n++] =
new Vector3( y *
scale - half, 0f, half );
59 uv[n] = y % 10 == 0 ? Vector2.one : Vector2.zero;
60 lines[n++] =
new Vector3( -half, 0f, y *
scale - half );
63 uv[n] = y % 10 == 0 ? Vector2.one : Vector2.zero;
64 lines[n++] =
new Vector3( half, 0f, y *
scale - half );
67 for(
int i = 0; i <
lines.Length; i++)
69 normals[i] = Vector3.up;
78 tm.SetIndices(indices, MeshTopology.Lines, 0);