extends MeshInstance3D
func _ready():
var vertices = PackedVector3Array([
Vector3( 0, 0, 1), # 0: Top-Left
Vector3( 1, 0, 1), # 1: Top-Right
Vector3( 1, 0, 0), # 2: Bottom-Right
Vector3( 0, 0, 0) # 3: Bottom-Left
])
var normals = PackedVector3Array([
Vector3(0, 1, 0),
Vector3(0, 1, 0),
Vector3(0, 1, 0),
Vector3(0, 1, 0)
])
var indices = PackedInt32Array([
0, 2, 1, # First triangle (0, 1, 2)
0, 3, 2 # Second triangle (0, 2, 3)
])
var uvs = PackedVector2Array([
Vector2(0, 0), # Maps to Vertex 0
Vector2(1, 0), # Maps to Vertex 1
Vector2(1, 1), # Maps to Vertex 2
Vector2(0, 1) # Maps to Vertex 3
])
var arrays = []
arrays.resize(Mesh.ARRAY_MAX)
arrays[Mesh.ARRAY_VERTEX] = vertices
arrays[Mesh.ARRAY_NORMAL] = normals
arrays[Mesh.ARRAY_TEX_UV] = uvs
arrays[Mesh.ARRAY_INDEX] = indices
var array_mesh = ArrayMesh.new()
array_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)
self.mesh = array_mesh
var material = StandardMaterial3D.new()
material.albedo_color = Color.DEEP_SKY_BLUE
self.set_surface_override_material(0, material)