24 lines
768 B
GDScript
24 lines
768 B
GDScript
extends Node3D
|
|
|
|
@export var vertical_joystick_sensitity : float = 2
|
|
@export var vertical_mouse_sensitivity : float = 0.02
|
|
|
|
var max_angle_radians = 1.5
|
|
|
|
func _process(delta):
|
|
var look_velocity = Input.get_vector("look_left", "look_right", "look_up", "look_down")
|
|
var rotate_degree = -look_velocity.y * vertical_joystick_sensitity
|
|
rotate_x(rotate_degree)
|
|
|
|
|
|
func _unhandled_input(event):
|
|
if event is InputEventMouseMotion:
|
|
var mouse_movement = -event.relative.y
|
|
var rotate_amount = mouse_movement * vertical_mouse_sensitivity
|
|
var rotation_after = rotate_amount + rotation.x
|
|
if rotation_after <= max_angle_radians and rotate_amount > 0:
|
|
rotate_x(rotate_amount)
|
|
elif rotation_after >= -max_angle_radians and rotate_amount < 0:
|
|
rotate_x(rotate_amount)
|
|
|