@tool class_name MapCamera extends Camera3D @export var targetFollow:Node3D = null @export var pathFollow:PathFollow3D = null @export var pathMap:Path3D = null func _process(delta): if !pathMap || !targetFollow || !pathMap.curve: return var point = pathMap.curve.get_closest_point(targetFollow.global_transform.origin) pathFollow.progress_ratio = pathMap.curve.get_closest_offset(point) / pathMap.curve.get_baked_length() global_transform.origin = pathFollow.global_transform.origin look_at(targetFollow.global_transform.origin, Vector3.UP)