I tried using the lerp() function to do linear interpolation in GODOT, however; the object in my project just abruptly stops, like it never slows down.
extends KinematicBody
var SPEED = 200
var direction = Vector3()
func _ready():
pass
func _physics_process(_delta):
direction = Vector3(0,0,0)
if Input.is_action_pressed("ui_left"):
direction.x -= 1
lerp(direction.x, 0, 1)
if Input.is_action_pressed("ui_right"):
direction.x += 1
lerp(direction.x, 0, 1)
if Input.is_action_pressed("ui_up"):
direction.z -= 1
lerp(direction.z, 0, 1)
if Input.is_action_pressed("ui_down"):
direction.z += 1
lerp(direction.z, 0, 1)
direction = direction.normalized()
direction = direction * SPEED * _delta
move_and_slide(direction, Vector3(0,1,0))