如何将黄色立方体朝向汽车旋转?

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跟随玩家角色。 CameraPivot 之后。因此,移动玩家角色会移动 Camera,旋转 Pivot 会形成 Camera 轨道。这只是缺少一些使 Pivot 旋转的代码。例如像这样的东西(Pivot 的代码):

global_transform.rotate_y(Input.get_axis("camera_left", "camera_right"))

其中 "camera_left""camera_right" 是在输入映射(在项目设置中)中配置的操作。 这提醒了我,您可以使用 Input.action_press 从代码中设置操作,因此其他地方可能有代码(例如 _input)通过鼠标移动编写这些操作。

相机控制并不难