Anyway, your code works fine for me. Any extra infomation like scene structure, image url or Godot version?
extends Node
func _ready() -> void:
var image_url = "https://forum.godotengine.org/user_avatar/forum.godotengine.org/dctewi/288/30284_2.png"
var image = await load_image_from_url(image_url)
set_texture(image, "Node3D")
func load_image_from_url(image_url: String) -> ImageTexture:
var error = $HTTPRequest.request(image_url)
if error != OK:
print("Fehler bei der Anfrage: ", error)
return null
var result = await $HTTPRequest.request_completed
var response_code = result[1]
var body = result[3]
if response_code == 200:
var image = Image.new()
var load_error = image.load_png_from_buffer(body)
if load_error == OK:
print("Image loaded. Width: ", image.get_width(), " Height: ", image.get_height())
var texture = ImageTexture.create_from_image(image)
print("Texture loaded")
return texture
else:
print("Error while loading the image: ", load_error)
return null
else:
print("HTTP Request error: ", response_code)
return null
func set_texture(texture: ImageTexture, target: String):
var root = self.get_parent()
var debugSprite = root.find_child("Sprite3D") as Sprite3D
debugSprite.texture = texture
var target_node = root.find_child(target)
if target_node != null:
var image_plane = target_node.find_child("Plane") as MeshInstance3D
if image_plane != null:
print("Ziel gefunden! Textur wird angewendet.")
var material = StandardMaterial3D.new()
material.albedo_texture = texture
image_plane.set_surface_override_material(0, material)
else:
print("Keine Plane unter dem Zielknoten gefunden.")
else:
print("Zielknoten nicht gefunden.")