Advertisement
Ragdev

Third-Person Controller Player.gd Godot

Apr 4th, 2025 (edited)
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GDScript 0.96 KB | Source Code | 0 0
  1. extends CharacterBody3D
  2.  
  3. var Speed = 10.0
  4. var JumpStrength = 10.0
  5. var Gravity = 20.0
  6. var Vel = Vector3.DOWN
  7.  
  8. @onready var CamArm = $CamArm
  9. @onready var Model = $Model
  10.  
  11. func _physics_process(delta):
  12.     var MoveDir = Vector3.ZERO
  13.     MoveDir.x = Input.get_action_strength("Right") - Input.get_action_strength("Left")
  14.     MoveDir.z = Input.get_action_strength("Back") - Input.get_action_strength("Forward")
  15.     MoveDir = MoveDir.rotated(Vector3.UP, CamArm.rotation.y).normalized()
  16.    
  17.     Vel.x = MoveDir.x * Speed
  18.     Vel.z = MoveDir.z * Speed
  19.  
  20.     if is_on_floor():
  21.         if Input.is_action_just_pressed("Jump"):
  22.             Vel.y = JumpStrength
  23.         else:
  24.             Vel.y = 0
  25.     else:
  26.         Vel.y -= Gravity * delta
  27.    
  28.     set_velocity(Vel)
  29.     move_and_slide()
  30.     Vel = get_real_velocity()
  31.    
  32.     if Vel.x != 0 or Vel.z != 0:
  33.         var LookDirection = Vector2(Vel.z, Vel.x)
  34.         Model.rotation.y = lerp_angle(Model.rotation.y, LookDirection.angle(), delta*5)
  35.  
  36. func _process(delta):
  37.     CamArm.position = position
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement