mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2025-12-15 13:00:07 +01:00
31 lines
571 B
GDScript
31 lines
571 B
GDScript
extends Control
|
|
|
|
|
|
@export var world_offset := Vector3.ZERO
|
|
|
|
var _pos_offset: Vector2
|
|
var _attachment: Node3D
|
|
|
|
|
|
func _ready() -> void:
|
|
_pos_offset = position
|
|
_attachment = get_parent()
|
|
|
|
|
|
func _process(_delta: float) -> void:
|
|
if _attachment == null:
|
|
return
|
|
|
|
var viewport := get_viewport()
|
|
if viewport == null:
|
|
return
|
|
|
|
var camera := viewport.get_camera_3d()
|
|
if camera == null:
|
|
return
|
|
|
|
var world_pos := world_offset + _attachment.global_transform.origin
|
|
var screen_pos := camera.unproject_position(world_pos)
|
|
|
|
position = _pos_offset + screen_pos - 0.5 * size
|