3 Pluspunkte 0 Minuspunkte

Ich erstelle ein PlaneMesh mit diesem Script

var myMesh = MeshInstance3D.new()
myMesh.mesh = PlaneMesh.new()
myMesh.create_convex_collision(true, true)

Ich habe versucht ein Bild aus dem Projektordner als Textur auf das Mesh zu laden.

var new_texture = ImageTexture3D.new()
new_texture.load("res://img.png")
myMesh.material_override = StandardMaterial3D.new()
myMesh.material_override.albedo_texture = new_texture

Dabei wird der folgende Fehler angezeigt:

Invalid call. Nonexistent function 'load' in base 'ImageTexture3D'.

Wie kann ich ein PNG Bild als Textur auf ein dynamisch erzeugtes Mesh laden?

von  

1 Antwort

2 Pluspunkte 0 Minuspunkte

Zuerst erstellst du ein neues StandardMaterial3D und ladest das Bild als Image. Dann erstellst du mit dem Image eine Textur und überschreibst die Material und Texture Properties des Mesh. Mit diesem Script sollte das klappen.

var myMesh = MeshInstance3D.new()
myMesh.mesh = PlaneMesh.new()
myMesh.create_convex_collision(true, true)


var material = StandardMaterial3D.new()
var image = Image.new()
image.load("img.jpg")
var texture = ImageTexture.create_from_image(image)

myMesh.material_override = material
material.albedo_texture = texture

add_child(myMesh)
von (532 Punkte)