But I cannot get the player object to appear when I run the app.
I have created the project step by step. I’ve created the camera and even tried positioning it higher up and looking almost vertically down.
I am a complete beginner when it comes to GD script and programming in this way ( Visually with drag and drop insantiation ). I only learned Java in uni and the last time I used that in production was 25 years ago [ Yeah I’m old]
I realise that the “Your First 3D Game” tutorial is not up to date for Godot 4.2. Can anyone fix the code for me because I haven’t a clue.
My code is identical to the example code because I copy and pasted it. I understand how it’s supposed to work. It just doesn’t and I don’t know why.
However I found something out this morning. The code for player.gd is as follows:
extends CharacterBody3D
# How fast the player moves in meters per second.
@export var speed = 14
# The downward acceleration when in the air, in meters per second squared.
@export var fall_acceleration = 75
var target_velocity = Vector3.ZERO
func _physics_process(delta):
var direction = Vector3.ZERO
if Input.is_action_pressed("move_right"):
direction.x += 1
if Input.is_action_pressed("move_left"):
direction.x -= 1
if Input.is_action_pressed("move_back"):
direction.z += 1
if Input.is_action_pressed("move_forward"):
direction.z -= 1
if direction != Vector3.ZERO:
direction = direction.normalized()
$Pivot.basis = Basis.looking_at(direction)
# Ground Velocity
target_velocity.x = direction.x * speed
target_velocity.z = direction.z * speed
# Vertical Velocity
if not is_on_floor(): # If in the air, fall towards the floor. Literally gravity
target_velocity.y = target_velocity.y - (fall_acceleration * delta)
# Moving the Character
velocity = target_velocity
move_and_slide()
If I comment out the if statement ‘if not is on floor()’ then the blob appears
It would seem that it’s falling straight through the floor.
Secondly now that the blob appears - on pressing any direction key the blob moves immediately to the edge of the collision rectangle and will not move back on. I can then move the blob around but only while it’s off the edge of the play area.
I think speed 14 is pretty fast same with fall_acceleration, depends on your scale. but your player could be falling so fast it clips right past the floor
I think I fixed it! The tutorial calls for the ground mesh to be at -1y but the collision shape to be at 0y this meant that the blob was being spawned inside the collision box and was being yeeted into the void.
I have lowered the speed as it was very fast, I have lowered the collision box to -1y and now I can move the blob around the play area as expected!
Awesome! you can also try out using a “WorldBoundry” shape instead of a box, or making the box much taller (downward). These are usually good ways to start collision so things don’t clip through, but I understand following the tutorial! Good luck!