extends StaticBody3D signal button_pressed @onready var mesh_instance: MeshInstance3D = $MeshInstance3D @onready var collision_shape: CollisionShape3D = $CollisionShape3D var original_color: Color = Color.DODGER_BLUE var hover_color: Color = Color.CYAN var press_color: Color = Color.WHITE func _ready(): # Setze die Collision Layer für XR Tools collision_layer = 1 << 20 collision_mask = 0 # Stelle sicher dass ein Material existiert if mesh_instance and mesh_instance.get_surface_override_material_count() == 0: var material = StandardMaterial3D.new() material.albedo_color = original_color mesh_instance.set_surface_override_material(0, material) func pointer_event(event): if not event is XRToolsPointerEvent: return match event.event_type: XRToolsPointerEvent.Type.ENTERED: set_button_color(hover_color) XRToolsPointerEvent.Type.EXITED: set_button_color(original_color) XRToolsPointerEvent.Type.PRESSED: set_button_color(press_color) button_pressed.emit() XRToolsPointerEvent.Type.RELEASED: set_button_color(hover_color) func set_button_color(color: Color): if mesh_instance and mesh_instance.mesh: var material = mesh_instance.get_surface_override_material(0) if material: material.albedo_color = color