我有一个带有相机的玩家角色作为两个枢轴的子节点,如下图 此相机可以通过代码进行y轴和x轴旋转。
如果我左键单击,我希望通过代码生成一个子弹对象,rigidBody3D,将其移动到相机前面,距离假设为 1m。所以沿着它的 Z 轴,根据相机角度,它可能指向上方或下方。
然后沿同一轴施加脉冲。
这是生成子弹的代码(在玩家脚本内):
func _unhandled_input(event: InputEvent):
if event is InputEventMouseMotion:
if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
twist_input = - event.relative.x * mouse_sensitivity
pitch_input = - event.relative.y * mouse_sensitivity
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
var bullet = load("res://bullet.tscn")
var Bullet = bullet.instantiate()
$"Twist Pivot/Twitch Pivot/Camera3D".add_child(Bullet)
Bullet.position = $"Twist Pivot/Twitch Pivot/Camera3D".global_position
以下是项目符号脚本中的代码:
但是,当我启动游戏并左键单击时,子弹停留在空中,似乎在我的上方而不是在我的正前方,并且不动:
请向我解释我做错了什么,如果你知道任何好的教程或文档可能比 godot 的更容易理解,因为我似乎无法理解它的概念,我将不胜感激...