Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d transform.LookAt()使Y角度增加180_Unity3d_Camera - Fatal编程技术网

Unity3d transform.LookAt()使Y角度增加180

Unity3d transform.LookAt()使Y角度增加180,unity3d,camera,Unity3d,Camera,我试图创造一个第三人称的宇宙飞船运动 宇宙飞船在它的位置绕着所有的轴旋转,并且有一个油门控制装置来向前移动。有一台照相机总是在它后面。我不想让相机成为孩子,因为我希望相机不跟随z轴的旋转 相机有一个脚本,它将其位置保持在飞船后面一个固定距离,然后调用transform.LookAt(spaceShipTarget) 问题是,当我将飞船绕全局x轴旋转90度时,相机的y轴突然旋转180度。摄影机控制脚本如下所示: 使用UnityEngine; 命名空间UnityStandardAssets.Util

我试图创造一个第三人称的宇宙飞船运动

宇宙飞船在它的位置绕着所有的轴旋转,并且有一个油门控制装置来向前移动。有一台照相机总是在它后面。我不想让相机成为孩子,因为我希望相机不跟随z轴的旋转

相机有一个脚本,它将其位置保持在飞船后面一个固定距离,然后调用
transform.LookAt(spaceShipTarget)

问题是,当我将飞船绕全局x轴旋转90度时,相机的y轴突然旋转180度。摄影机控制脚本如下所示:

使用UnityEngine;
命名空间UnityStandardAssets.Utility
{
公共阶层:单一行为
{
公共转型目标;
公众浮标距离;
公共交通延误;
专用矢量3速度=矢量3.0;
私有更新()
{
Vector3偏移=target.transform.TransformVector(0,0,距离);
Vector3 currentPosition=变换位置;
矢量3最终位置=目标位置+偏移量;
transform.position=Vector3.SmoothDamp(当前位置,
最终位置、参考速度、延迟);
变换。注视(目标);
}
}
}

为什么会发生这种情况?我如何修复它?

您的相机旋转问题可能是由您用于使相机跟随宇宙飞船的脚本引起的,可能是因为当您旋转宇宙飞船时,相机的旋转(可能还有位置)会受到影响


您可以做的是将另一个对象的spaceship和camera子对象同时制作,然后将脚本添加到此父对象。现在,您可以在父对象的脚本中添加一些代码来移动父对象本身(这样,摄影机和宇宙飞船将一起移动,而不需要手动将它们保持在一起)此外,在父对象的脚本中,您还可以根据特定的输入分别或同时放置一些代码来旋转飞船和相机。

因此,您将飞船在x轴上旋转90次,相机在y轴上跳跃180次?是否还有其他代码修改相机变换?如果是这样的话,您是否可以将其也包含在代码片段中?目前,提供的信息似乎不足以缩小问题范围…@Serlite done…谢谢@是的。