init
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
extends Node3D
|
||||
|
||||
@export var target: Node3D
|
||||
@export var sensitivity := 0.005
|
||||
@export var follow_speed := 5.0
|
||||
@export var cam: Camera3D
|
||||
|
||||
var _dragging := false
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event is InputEventMouseButton:
|
||||
match event.button_index:
|
||||
MOUSE_BUTTON_LEFT:
|
||||
_dragging = event.pressed
|
||||
MOUSE_BUTTON_WHEEL_UP:
|
||||
cam.position.z = maxf(cam.position.z - 1.0, 3.0)
|
||||
MOUSE_BUTTON_WHEEL_DOWN:
|
||||
cam.position.z = minf(cam.position.z + 1.0, 30.0)
|
||||
elif event is InputEventMouseMotion and _dragging:
|
||||
rotation.y -= event.relative.x * sensitivity
|
||||
rotation.x = clampf(
|
||||
rotation.x - event.relative.y * sensitivity,
|
||||
deg_to_rad(-80.0),
|
||||
deg_to_rad(-10.0)
|
||||
)
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if target:
|
||||
global_position = global_position.lerp(target.global_position, follow_speed * delta)
|
||||
Reference in New Issue
Block a user