looping skater through 4 static waypoints

This commit is contained in:
Torsten 2025-07-26 09:46:46 +02:00
parent 4d40529ee8
commit 498dbf5ef5
2 changed files with 24 additions and 7 deletions

View file

@ -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)

View file

@ -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("../..")