我在场景中有一个坦克,炮塔作为子对象附加在上面。我在场景中还有一个使用脚本旋转的摄像头,我需要坦克炮塔随着摄像头的旋转而平稳旋转。
有人知道如何在摄像机后平稳旋转炮塔吗?这样当坦克转动时,炮塔保持在原位(因为摄像机不旋转)
我实现了一些类似的东西,但是当坦克旋转时,炮塔也会随之旋转,但由于摄像机此时不旋转,所以现在摄像机的旋转和炮塔之间有自由空间。
坦克场景树:https://i.imgur.com/BgwBz0q.png (为了执行独立于父对象的相机节点,我在相机节点脚本中使用此代码)
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
set_as_top_level(true)
我需要的旋转: https: //youtu.be/23IdDtPB4t0
如果我正确理解了你的问题,那么你有一个坦克,它由一个随 WASD 移动的车身和一个与摄像头相连、随鼠标移动的炮塔组成。由于你没有发布代码,我想你更想听到概念而不是代码。
问题在于你如何构造你的树。你说:
由于炮塔是坦克的子级,因此父级的每次旋转、位置、比例更新都会应用到子级(根据 Godot 的逻辑)。所以这是一个问题,因为如果你旋转坦克,即使你没有移动鼠标,炮塔也会旋转。
为了解决这个问题,你应该有一棵树,其中父节点是一个通用节点,它有两个子节点(两个节点),一个用于炮塔和相机,一个用于身体,它们都有自己的脚本来根据用户输入进行更改。
这应该可以解决这个问题
为了“平滑旋转”某些东西,我想你需要一个系统,让摄像机旋转,并在“延迟”后炮塔也旋转。你可以使用 lerp 来实现这一点。我链接到官方文档以了解更多信息
正如 isherwood 所说,您的问题不完整。如果您需要更多帮助/我说的不是您要找的内容,请提供更多信息(和一些代码)。
问候