如何在Godot中仅用触控板和键盘实现3D自由视角(笔记本无鼠标)
无鼠标笔记本在Godot中实现第一人称3D自由视角的操作方案
推荐按键组合
- 视角旋转:用**方向键(←/→/↑/↓)**控制左右、上下视角转动;也可采用双模式:普通WASD控制移动,按住
Shift+WASD控制视角,无需切换按键组 - 移动:经典WASD控制前后左右,空格触发跳跃,左Ctrl实现下蹲
- 快速转视角:按住
Shift或Alt配合方向键,提升视角转动速度,适配大范围视角调整需求
按键映射配置
在Godot项目设置的「输入映射」面板中,添加并绑定以下动作:
forward:W键backward:S键left:A键right:D键jump:空格键crouch:左Ctrl键look_left:左方向键look_right:右方向键look_up:上方向键look_down:下方向键fast_look:Shift键
基础实现代码(GDScript)
将以下脚本挂载到CharacterBody3D节点上,关联好子节点Camera3D:
extends CharacterBody3D @export var move_speed: float = 5.0 @export var jump_force: float = 4.0 @export var look_speed: float = 0.1 @export var fast_look_multiplier: float = 2.0 @onready var camera = $Camera3D var yaw: float = 0.0 var pitch: float = 0.0 func _physics_process(delta: float) -> void: # 移动逻辑 var input_dir = Input.get_vector("left", "right", "forward", "backward").normalized() var move_dir = transform.basis * input_dir velocity.x = move_dir.x * move_speed velocity.z = move_dir.z * move_speed # 跳跃与下蹲 if is_on_floor(): if Input.is_action_just_pressed("jump"): velocity.y = jump_force velocity.y = -0.5 if Input.is_action_pressed("crouch") else -1.0 else: velocity.y -= 9.8 * delta move_and_slide() func _process(delta: float) -> void: # 视角旋转逻辑 var look_multiplier = fast_look_multiplier if Input.is_action_pressed("fast_look") else 1.0 var look_input = Input.get_vector("look_left", "look_right", "look_up", "look_down") * look_speed * look_multiplier * delta yaw -= look_input.x pitch += look_input.y pitch = clamp(pitch, -1.5, 1.5) # 限制上下视角,避免镜头翻转 camera.rotation.x = pitch rotation.y = yaw
内容的提问来源于stack exchange,提问作者Sainath Shetty
相关产品推荐
相关产品推荐

