15 lines
551 B
GDScript
15 lines
551 B
GDScript
@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) |