使用gdscript写出鼠标移动控制朝向,wasd控制移动的带碰撞的第三人称相机代码
时间: 2023-02-07 10:22:05 浏览: 188
以鼠标控制图像的移动的例子
在你的场景中加入一个`Spatial`节点,并将它设置为你的摄像机。然后在节点的脚本中加入以下代码:
```
extends Spatial
var speed = 10
func _input(event):
if event.is_action_pressed("ui_right"):
translate(Vector3(1, 0, 0) * speed * get_process_delta_time())
elif event.is_action_pressed("ui_left"):
translate(Vector3(-1, 0, 0) * speed * get_process_delta_time())
elif event.is_action_pressed("ui_up"):
translate(Vector3(0, 0, -1) * speed * get_process_delta_time())
elif event.is_action_pressed("ui_down"):
translate(Vector3(0, 0, 1) * speed * get_process_delta_time())
func _unhandled_input(event):
if event.is_action("ui_look_left"):
rotate_y(-1)
elif event.is_action("ui_look_right"):
rotate_y(1)
elif event.is_action("ui_look_up"):
rotate_x(-1)
elif event.is_action("ui_look_down"):
rotate_x(1)
```
那么你就可以使用WASD来控制摄像机的移动,使用鼠标移动来控制摄像机的朝向了。
要实现碰撞检测,你需要将一个`CollisionShape`组件挂载到摄像机节点上,并在场景中添加碰撞体(例如`StaticBody`或`RigidBody`)。
注意:上述代码使用了`get_process_delta_time()`函数来保证移动速度不受帧率影响,因此在不同的计算机上移动速度是相同的。
阅读全文