如何将黄色立方体朝向汽车旋转?
how to rotate the yellow cube towards the car?
如何将黄色立方体朝向汽车旋转?我有一个旋转的相机,我认为是这样的
您是否正在尝试使用代码? 我提醒你 Whosebug 是用来编程的。对于其他与游戏相关的东西,有 gamedev.stackexchange.com.
如果您使用代码执行此操作 - 鉴于我不知道场景树的外观 - 我建议使用 look_at
。像这样(Camera
的代码):
look_at(car.global_transform.origin, car.global_transform.basis.y)
那里car
是对汽车的引用。 如果不看场景树,我不能告诉你如何得到一个,除此之外你可能可以使用get_node
。所以car.global_transform.origin
是全球坐标中的汽车。而car.global_transform.basis.y
是车子向上的方向
方法 look_at
需要向上矢量,因为有无限种方法可以查看给定点(围绕视线旋转)。因此,我们不需要与视线相匹配的向上矢量。 例如,Vector3.UP
如果相机正视或正视将不起作用。
如果您只想在设计器中旋转它。您可以使用 select 时看到的 gizmo。您可以拖动蓝色环直到它正确对齐。
这个 gizmos 的实际标准是 x
是红色,y
是绿色,z
是蓝色(这在 Godot、Blender 和大量其他软件)。所以蓝色环围绕 z 轴旋转。您还可以在检查器面板中找到旋转,寻找变换下 z 的旋转度数。
我提醒您,如果您将 Camera
作为另一个 Spatial
的子节点,它将保持其相对于它的位置和方向。因此,将 Camera
作为玩家角色的子元素(例如 KinematicBody
)对于早期开发阶段来说通常就足够了,因为这保证了 Camera
跟随玩家角色。无需编码。 稍后您可能需要更精细的 Camera
控件,这需要一些代码。
既然你提到了“旋转相机”,也许你想要一个围绕一个点旋转的 Camera
。更简单的方法是为 Camera
旋转的点添加辅助 Spatial
。 让我们称它为 Pivot
,然后旋转它。 为了清楚起见,我建议这样设置:
PlayerCharacter
└ Pivot
└ Camera
此处Pivot
跟随玩家角色。 Camera
在 Pivot
之后。因此,移动玩家角色会移动 Camera
,旋转 Pivot
会形成 Camera
轨道。这只是缺少一些使 Pivot
旋转的代码。例如像这样的东西(Pivot
的代码):
global_transform.rotate_y(Input.get_axis("camera_left", "camera_right"))
其中 "camera_left"
和 "camera_right"
是在输入映射(在项目设置中)中配置的操作。 这提醒了我,您可以使用 Input.action_press
从代码中设置操作,因此其他地方可能有代码(例如 _input
)通过鼠标移动编写这些操作。
相机控制并不难
如何将黄色立方体朝向汽车旋转?我有一个旋转的相机,我认为是这样的
您是否正在尝试使用代码? 我提醒你 Whosebug 是用来编程的。对于其他与游戏相关的东西,有 gamedev.stackexchange.com.
如果您使用代码执行此操作 - 鉴于我不知道场景树的外观 - 我建议使用 look_at
。像这样(Camera
的代码):
look_at(car.global_transform.origin, car.global_transform.basis.y)
那里car
是对汽车的引用。 如果不看场景树,我不能告诉你如何得到一个,除此之外你可能可以使用get_node
。所以car.global_transform.origin
是全球坐标中的汽车。而car.global_transform.basis.y
是车子向上的方向
方法 look_at
需要向上矢量,因为有无限种方法可以查看给定点(围绕视线旋转)。因此,我们不需要与视线相匹配的向上矢量。 例如,Vector3.UP
如果相机正视或正视将不起作用。
如果您只想在设计器中旋转它。您可以使用 select 时看到的 gizmo。您可以拖动蓝色环直到它正确对齐。
这个 gizmos 的实际标准是 x
是红色,y
是绿色,z
是蓝色(这在 Godot、Blender 和大量其他软件)。所以蓝色环围绕 z 轴旋转。您还可以在检查器面板中找到旋转,寻找变换下 z 的旋转度数。
我提醒您,如果您将 Camera
作为另一个 Spatial
的子节点,它将保持其相对于它的位置和方向。因此,将 Camera
作为玩家角色的子元素(例如 KinematicBody
)对于早期开发阶段来说通常就足够了,因为这保证了 Camera
跟随玩家角色。无需编码。 稍后您可能需要更精细的 Camera
控件,这需要一些代码。
既然你提到了“旋转相机”,也许你想要一个围绕一个点旋转的 Camera
。更简单的方法是为 Camera
旋转的点添加辅助 Spatial
。 让我们称它为 Pivot
,然后旋转它。 为了清楚起见,我建议这样设置:
PlayerCharacter
└ Pivot
└ Camera
此处Pivot
跟随玩家角色。 Camera
在 Pivot
之后。因此,移动玩家角色会移动 Camera
,旋转 Pivot
会形成 Camera
轨道。这只是缺少一些使 Pivot
旋转的代码。例如像这样的东西(Pivot
的代码):
global_transform.rotate_y(Input.get_axis("camera_left", "camera_right"))
其中 "camera_left"
和 "camera_right"
是在输入映射(在项目设置中)中配置的操作。 这提醒了我,您可以使用 Input.action_press
从代码中设置操作,因此其他地方可能有代码(例如 _input
)通过鼠标移动编写这些操作。
相机控制并不难