2 Pluspunkte 0 Minuspunkte

Hallo zusammen!

Ich verwende Godot 4.3 und wenn ich 0 (Integer) auf 0.0 (Float) ändere bewegt sich der Charakter nicht mehr. Auch wenn ich den letzten Parameter in einen Integer ändere bringt es nichts. Woran kann das liegen?

LG

extends CharacterBody3D

var myVelocity = Vector3(0,0,0)
const SPEED = 6

func _ready() -> void:
    pass # Replace with function body.

func _physics_process(delta: float) -> void:
    if Input.is_action_pressed("ui_right") and Input.is_action_pressed("ui_left"):
        velocity.x = 0
    elif Input.is_action_pressed("ui_right"):
        myVelocity.x = SPEED
    elif Input.is_action_pressed("ui_left"):
        myVelocity.x = -SPEED
    else:
        myVelocity.z = lerp(myVelocity.z,0,0.1)

    if Input.is_action_pressed("ui_up") and Input.is_action_pressed("ui_down"):
        velocity.z = 0
    elif Input.is_action_pressed("ui_up"):
        myVelocity.z = -SPEED
    elif Input.is_action_pressed("ui_down"):
        myVelocity.z = SPEED
    else:
        myVelocity.z = lerp(myVelocity.z,0,0.1)

    velocity = myVelocity
    move_and_slide()
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Die Funktion lerp erwartet, dass die Parameter 2 und 3 (from und to) vom selben Typ sind wie der 1 Parameter sind. Da die Komponenten eines Vector3 vom Typ Float sind sollte dein Code so aussehen.

lerp(myVelocity.z, 0.0, 0.1)

Wobei ich denke du meinst

lerp(myVelocity.z, 0.0, 1.0)
von (566 Punkte)