![]() |
Attention | Topic was automatically imported from the old Question2Answer platform. |
![]() |
Asked By | Westleyaaj |
I was converting one of my projects and I can’t figure out how to use move_and_slide()
on a CharacterBody3D
![]() |
Attention | Topic was automatically imported from the old Question2Answer platform. |
![]() |
Asked By | Westleyaaj |
I was converting one of my projects and I can’t figure out how to use move_and_slide()
on a CharacterBody3D
![]() |
Reply From: | kidscancode |
It works in the same way it does in 3.x, but the function’s parameters are now properties of the body.
velocity
is now a node property, along with up_direction
, etc. And move_and_slide()
now takes no arguments.
So, the following code for basic movement in 3.x:
extends KinematicBody
var gravity = 10.0
var speed = 3.0
var velocity = Vector3.ZERO
func _physics_process(delta):
velocity.y += gravity * delta
velocity.x = Input.get_axis("ui_up", "ui_down") * transform.basis.z * speed
velocity = move_and_slide(velocity, Vector3.UP)
Would become
extends CharacterBody3D
var gravity = 10.0
var speed = 3.0
func _physics_process(delta):
velocity.y += gravity * delta
velocity.x = Input.get_axis("ui_up", "ui_down") * transform.basis.z * speed
move_and_slide()
See CharacterBody3D — Godot Engine (latest) documentation in English and the default built-in CharacterBody3D script for details.