fix rail switch

This commit is contained in:
Overside srl
2026-02-01 11:22:46 +01:00
parent c1ce3b06f4
commit dd1ba0fa9a
5 changed files with 58 additions and 24 deletions

View File

@@ -9,8 +9,8 @@ signal rail_switched(old_rail: Path3D, new_rail: Path3D)
@export var max_speed: float = 50.0
@export var min_speed: float = 3.0
@export var acceleration: float = 12.0
@export var rail_a: Path3D
@export var rail_b: Path3D
@onready var rail_a: Path3D = $"../Rails1"
@onready var rail_b: Path3D = $"../Rails2"
var current_follower: PathFollow3D
var current_rail: Path3D
@@ -24,6 +24,7 @@ func _ready() -> void:
func _process(delta: float) -> void:
_handle_input(delta)
current_follower.progress += current_speed * delta
global_transform = current_follower.global_transform
func _handle_input(delta: float) -> void:
@@ -48,8 +49,8 @@ func switch_to_rail(new_rail: Path3D) -> void:
var closest_offset = find_closest_point_on_path(new_rail, global_position)
current_follower.progress = closest_offset
func find_closest_point_on_path(path: Path3D, point: Vector3) -> float:
var curve = path.curve
var closest_offset = 0.0