Godot中具有飞行模式的相机控制器



我正在Godot中进行一个程序地形生成的小项目
我需要一个非常基本的相机控制器,它可以飞起来,而不是跳跃。即使是Godot官方Fps教程中的Fps控制器,对我的需求来说也太夸张了。我对Godot和GDScript还很陌生,即使我很熟悉C#,我也不知道如何在Godot中使用它(我更喜欢Godot的GDScript,因为缺少C#的内部编辑器(
有人能帮我吗?感谢

出于测试目的,我的目标是"Simple Free Look Camera";通过adamvilla,你可以在资产库中找到它。下载时,它将为您提供一个camera.gd脚本,您可以将该脚本附加到场景中的Camera(将文件从"文件系统"面板拖动到"场景"面板即可(。使Cameracurrent设置为true。这就是一切。

该脚本模仿了编辑器相机的基本移动,因此您可以右键单击四处查看,WASD可以飞行。Q和E垂直移动。你可以用鼠标滚轮来改变飞行速度。

此外,就像资产库中的所有东西一样,它是免费的(这就是为什么它不是资产store(。它也是开源的。所以你可以打开它并研究代码。而且它是自由的,所以你也可以随意修改上面对控件的描述也应该有助于作为在代码中查找内容的起点


以下是对camera.gd代码的作用的简短解释

您可以在代码中发现,当您按下鼠标右键时,它使用Input.set_mouse_mode来捕获鼠标。并且当它获得InputEventMouseMotion(顺便说一句,这在_input中(用于稍后使用rotate_yrotate_object_local的组合旋转Camera时,它将存储relative运动(该部分在_update_mouselook中(鼠标水平运动转换为偏航,鼠标垂直运动转换为俯仰,代码也会钳制俯仰

它还会跟踪它感兴趣的键的状态。你可以在脚本顶部找到变量_w_s_a_d_q_e,当它得到InputEventKey时,会在_input上更新。这些关键点的状态用于计算方向向量(在方向向量上应用速度和加速度(,并最终使用translate移动Camera(可以在_update_movement上找到(请注意,translateCamera方向的影响,因此z轴是您所看到的位置。

鼠标滚轮输入也在_input上进行,它更新了_update_movement中应用的速度倍增器

相关内容

  • 没有找到相关文章

最新更新