Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends CharacterBody3D
- var Speed = 10.0
- var JumpStrength = 10.0
- var Gravity = 20.0
- var Vel = Vector3.DOWN
- @onready var CamArm = $CamArm
- @onready var Model = $Model
- func _physics_process(delta):
- var MoveDir = Vector3.ZERO
- MoveDir.x = Input.get_action_strength("Right") - Input.get_action_strength("Left")
- MoveDir.z = Input.get_action_strength("Back") - Input.get_action_strength("Forward")
- MoveDir = MoveDir.rotated(Vector3.UP, CamArm.rotation.y).normalized()
- Vel.x = MoveDir.x * Speed
- Vel.z = MoveDir.z * Speed
- if is_on_floor():
- if Input.is_action_just_pressed("Jump"):
- Vel.y = JumpStrength
- else:
- Vel.y = 0
- else:
- Vel.y -= Gravity * delta
- set_velocity(Vel)
- move_and_slide()
- Vel = get_real_velocity()
- if Vel.x != 0 or Vel.z != 0:
- var LookDirection = Vector2(Vel.z, Vel.x)
- Model.rotation.y = lerp_angle(Model.rotation.y, LookDirection.angle(), delta*5)
- func _process(delta):
- CamArm.position = position
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement