looping skater through 4 static waypoints
This commit is contained in:
parent
4d40529ee8
commit
498dbf5ef5
2 changed files with 24 additions and 7 deletions
|
|
@ -1,15 +1,32 @@
|
|||
extends CharacterBody3D
|
||||
|
||||
@export var target_node: NodePath
|
||||
@export var target_node: Node3D
|
||||
@export var speed: float = 5.0
|
||||
@export var waypoints: Array[Node3D] = []
|
||||
var wp_index=0
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
var target = get_node(target_node)
|
||||
#var target = get_node(target_node)
|
||||
var target = waypoints[wp_index]
|
||||
|
||||
if target:
|
||||
var direction = (target.global_transform.origin - global_transform.origin)
|
||||
if direction.length() > 0.1:
|
||||
# looking at target
|
||||
print(wp_index," ", direction.length())
|
||||
|
||||
var target_dir = (target.position - global_transform.origin).normalized()
|
||||
var current_dir = global_transform.basis.z.normalized()
|
||||
var lerp_dir = current_dir.lerp(target_dir, delta * speed)
|
||||
if direction.length() > 1.0:
|
||||
look_at(target.global_transform.origin + lerp_dir, Vector3.UP)
|
||||
direction = direction.normalized()
|
||||
velocity = direction * speed
|
||||
move_and_slide()
|
||||
else:
|
||||
velocity = Vector3.ZERO
|
||||
#velocity = Vector3.ZERO
|
||||
wp_index+=1
|
||||
if wp_index==len(waypoints):
|
||||
wp_index=0
|
||||
target = waypoints[wp_index]
|
||||
print(wp_index)
|
||||
|
|
|
|||
|
|
@ -105,12 +105,12 @@ transform = Transform3D(0.999999, 0.000245532, 0.00101596, -0.000244175, 0.99999
|
|||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.484031, 0.875051, 0, -0.875051, 0.484031, 0, 23.5809, 16.7921)
|
||||
|
||||
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
|
||||
[node name="CharacterBody3D" type="CharacterBody3D" parent="." node_paths=PackedStringArray("waypoints")]
|
||||
script = ExtResource("2_28a8u")
|
||||
target_node = NodePath("../Waypoints/Waypoint1")
|
||||
waypoints = [NodePath("../Waypoints/Waypoint1"), NodePath("../Waypoints/Waypoint2"), NodePath("../Waypoints/Waypoint3"), NodePath("../Waypoints/Waypoint4")]
|
||||
|
||||
[node name="Flieger" type="MeshInstance3D" parent="CharacterBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.776744, -0.485335, 0.191815)
|
||||
transform = Transform3D(-0.999657, 0, -0.026177, 0, 1, 0, 0.026177, 0, -0.999657, -0.776744, -0.485335, 0.191815)
|
||||
mesh = ExtResource("3_28a8u")
|
||||
skeleton = NodePath("../..")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue