make hovering_manager to manage hovers from one place

This commit is contained in:
2024-10-06 18:34:54 +10:00
parent adbf71ad02
commit 2eb3369b95
7 changed files with 52 additions and 52 deletions

View File

@@ -0,0 +1,23 @@
extends Node3D
var hovered_node: Variant
var mouse_pos: Vector2 = Vector2.ZERO
@onready var camera: Camera3D = get_viewport().get_camera_3d()
func _physics_process(_delta: float) -> void:
var space_state := get_world_3d().direct_space_state
var from := camera.project_ray_origin(mouse_pos)
var to := from + camera.project_ray_normal(mouse_pos) * (camera.far - 1)
var query := PhysicsRayQueryParameters3D.create(from, to)
var result := space_state.intersect_ray(query)
if not result:
hovered_node = null
return
hovered_node = result["collider"]
func _input(event: InputEvent) -> void:
if event is InputEventMouseMotion:
mouse_pos = (event as InputEventMouseMotion).position