Yes, currently I don’t have access to my computer, but I will send the code asap.
extends CharacterBody3D
@onready var camera := $"Camera-z"
const SPEED = 5.0
var tween
var dur = 0.3
@onready var rayfront := $RayFront
@onready var rayback := $RayBack
var target_position : Vector3
var direction := target_position
@onready var audio: AudioStreamPlayer2D = $"../../../../../SoundEffects"
func _ready() -> void:
target_position = position
func _physics_process(delta: float) -> void:
if not is_on_floor():
velocity += get_gravity() * delta
pass
if tween and tween.is_valid():
if tween.is_running():
return
var difference := target_position - position
direction = difference
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
move_and_slide()
func _on_button_up_pressed() -> void:
target_position += -camera.get_global_transform().basis.z*SPEED
func _on_button_right_pressed() -> void:
target_position += camera.get_global_transform().basis.x*SPEED
func _on_button_left_pressed() -> void:
target_position += -camera.get_global_transform().basis.x*SPEED
func _on_button_down_pressed() -> void:
target_position += camera.get_global_transform().basis.z*SPEED
func _on_button_cam_move_pressed() -> void:
tween = create_tween()
tween.tween_property(self,"transform:basis", transform.basis.rotated(Vector3.UP, PI/2),dur)