extends Path signal scene_finished var offset = 0 var length = 0 var dir = 0 var run = false var fadeout = false func _ready(): length = curve.get_baked_length() func playforward(): run = true dir = 1 offset = 0 fadeout = false get_node("Camera").make_current() func playbackward(): run = true dir = -1 offset = length fadeout = false get_node("Camera").make_current() func _process(delta): if run: offset += delta * dir if not fadeout: if dir > 0 and offset >= length-1 or dir < 0 and offset <= 1: emit_signal("scene_finished") fadeout = true var p1 = to_global(curve.interpolate_baked(offset)) var p2 = to_global(curve.interpolate_baked(offset+dir)) if p1 == p2: run = false return $Camera.look_at_from_position(p1,p2,Vector3.UP)