CCCPaste

10d6e83eda43a

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)