PathFollow3D to węzeł w Godot, który pozwala na poruszanie obiektu wzdłuż ścieżki w przestrzeni 3D. Węzeł ten działa w połączeniu z węzłem Path3D, który przechowuje trajektorię (krzywą), po której obiekt będzie się przemieszczał.
Główne zastosowania PathFollow3D:
- Ruch po ścieżce: Używany do poruszania obiektów (np. rakiet, kamer, postaci) wzdłuż zdefiniowanej krzywej.
- Animacje: Może być używany do animowania obiektów w określony sposób, np. ruchu wzdłuż toru.
- Płynne śledzenie obiektów: W połączeniu z dynamiczną modyfikacją krzywej, może służyć do tworzenia systemów śledzenia (np. dla pocisków lub NPC-ów).
Przykład użycia:
extends Node3D
@onready var path_follow = $Path3D/PathFollow3D
var speed = 5.0 # Prędkość ruchu obiektu
func _process(delta):
# Zwiększ przesunięcie wzdłuż ścieżki na podstawie prędkości
path_follow.offset += speed * delta
# Można użyć parametru loop, aby poruszanie było ciągłe po zamkniętej ścieżce
if path_follow.offset > path_follow.path_length:
path_follow.offset = 0 # Restartuj ruch od początku ścieżki</code></pre>
Ważne właściwości PathFollow3D:
- offset: Kontroluje, jak daleko wzdłuż ścieżki obiekt się porusza. Zwiększanie wartości tego parametru przesuwa obiekt wzdłuż krzywej.
- unit_offset: Normalizowana wersja offsetu, gdzie 0 oznacza początek ścieżki, a 1 jej koniec.
- loop: Jeśli włączone, obiekt będzie poruszał się w pętli po zamkniętej ścieżce.
- rotate: Jeśli włączone, obiekt będzie obracany wzdłuż trajektorii, co jest przydatne do zachowania orientacji wzdłuż zakrętów krzywej.
Przykładowe zastosowanie w symulacji rakiet:
Aby wykorzystać PathFollow3D do śledzenia dynamicznie zmieniającego się celu, można dynamicznie aktualizować ścieżkę Path3D na podstawie ruchu celu, a następnie przesuwać rakietę po tej trajektorii.
Dynamiczne śledzenie celu:
func update_target_position(new_target_position):
# Wyczyszczenie punktów i dodanie nowego celu
var path = $Path3D.curve
path.clear_points()
path.add_point(global_transform.origin) # Pozycja startowa rakiety
path.add_point(new_target_position) # Dynamicznie zmieniany cel
W ten sposób możesz dynamicznie zmieniać trasę rakiety, by dostosowywała się do zmieniającego się celu, a dzięki PathFollow3D rakieta będzie poruszała się płynnie po zaktualizowanej ścieżce.
Dodatkowe wskazówki:
- offset oraz unit_offset umożliwiają kontrolowanie, jak daleko obiekt jest przesunięty wzdłuż ścieżki.
- rotate zapewnia, że rakieta zachowa odpowiednią orientację względem ścieżki.
Published using WordPress Blurt Publisher from https://godot.com.pl.