Getting started heregit status!
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
extends Camera3D
|
||||
|
||||
@export var target : Node3D
|
||||
@export var delay : float
|
||||
@export var easing : float
|
||||
@export var waypoints : Array[Node3D]
|
||||
|
||||
var target_pos
|
||||
var max_time
|
||||
var t
|
||||
var factor
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
t = $Timer
|
||||
t.autostart = false
|
||||
t.wait_time = delay
|
||||
target_pos = target.position
|
||||
t.start()
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
if len(waypoints) == 0:
|
||||
pass
|
||||
else:
|
||||
|
||||
var wp1 = waypoints[0].position
|
||||
var wp2 = waypoints[1].position
|
||||
#var ratio = wp2.distance_to( target.position )/wp1.distance_to(wp2)
|
||||
var ratio = target.position.distance_to(wp2) / ( target.position.distance_to(wp1) + target.position.distance_to(wp2) )
|
||||
position = lerp( wp2 , wp1 , ratio )
|
||||
|
||||
#if len(waypoints)<2:
|
||||
#pass
|
||||
#elif len(waypoints) == 1:
|
||||
#pass
|
||||
#else:
|
||||
#var wp1 = waypoints[0].position
|
||||
#var wp2 = waypoints[1].position
|
||||
##var ratio = wp2.distance_to( target.position )/wp1.distance_to(wp2)
|
||||
#var ratio = target.position.distance_to(wp2) / ( target.position.distance_to(wp1) + target.position.distance_to(wp2) )
|
||||
#position = lerp( wp2 , wp1 , ratio )
|
||||
|
||||
|
||||
for i in waypoints:
|
||||
pass
|
||||
#print( i , " name:" + i.name , " pos:" + str(target.position.distance_to(i.position)) )
|
||||
|
||||
if target_pos != target.position:
|
||||
factor = t.time_left / t.wait_time
|
||||
print( t.wait_time, factor )
|
||||
|
||||
look_at( lerp( target.position , target_pos , pow( factor, easing ) ) + Vector3(0.0,0.70,0.0) )
|
||||
|
||||
|
||||
func _on_timer_timeout():
|
||||
target_pos = target.position
|
||||
t.start()
|
||||
Reference in New Issue
Block a user