27 lines
593 B
GDScript
27 lines
593 B
GDScript
extends Node3D
|
|
|
|
@export var sensitivity: float
|
|
|
|
var enabled: bool
|
|
|
|
func _ready():
|
|
assert(rotation_order == EULER_ORDER_YXZ)
|
|
|
|
func _unhandled_input(event):
|
|
if event.is_action_pressed("look"):
|
|
enabled = true
|
|
DisplayServer.mouse_set_mode(DisplayServer.MOUSE_MODE_CAPTURED)
|
|
|
|
if event.is_action_released("look"):
|
|
enabled = false
|
|
DisplayServer.mouse_set_mode(DisplayServer.MOUSE_MODE_VISIBLE)
|
|
|
|
if !enabled:
|
|
return
|
|
|
|
if not event is InputEventMouseMotion:
|
|
return
|
|
|
|
rotation.x += deg_to_rad(-event.relative.y * sensitivity)
|
|
rotation.y += deg_to_rad(-event.relative.x * sensitivity)
|