Godot Version
4.2
Question
The default keys in the CharacterBody3D.cs script template are moving in the wrong direction
I tryed to map them again in the “Project Settings → input map”
but still when pressing:
D → moving forward
A → moving back
W-> Left
S-> RIght
This is the script :
using Godot;
using System;
public partial class CharacterBody3D : Godot.CharacterBody3D
{
public const float Speed = 5.0f;
public const float JumpVelocity = 4.5f;
// Get the gravity from the project settings to be synced with RigidBody nodes.
public float gravity = ProjectSettings.GetSetting("physics/3d/default_gravity").AsSingle();
public override void _PhysicsProcess(double delta)
{
Vector3 velocity = Velocity;
// Add the gravity.
if (!IsOnFloor())
velocity.Y -= gravity * (float)delta;
// Handle Jump.
if (Input.IsActionJustPressed("ui_accept") && IsOnFloor())
velocity.Y = JumpVelocity;
// Get the input direction and handle the movement/deceleration.
// As good practice, you should replace UI actions with custom gameplay actions.
Vector2 inputDir = Input.GetVector("left", "right", "up", "down");
Vector3 direction = (Transform.Basis * new Vector3(inputDir.X, 0, inputDir.Y)).Normalized();
if (direction != Vector3.Zero)
{
velocity.X = direction.X * Speed;
velocity.Z = direction.Z * Speed;
}
else
{
velocity.X = Mathf.MoveToward(Velocity.X, 0, Speed);
velocity.Z = Mathf.MoveToward(Velocity.Z, 0, Speed);
}
Velocity = velocity;
MoveAndSlide();
}
}
The mapping
The scene how i expect it to work , and which it doesn’t see above
Thanks