枪不能以理想的方式相对于相机
Gun doesn't stay relative to camera in a desirable way
在我的等级制度中,我小时候就拿着枪对着我的相机。从图片中可以看出,在向上移动相机时,枪似乎漂浮在空中。我怎样才能使枪相对于相机,以便它粘在相机上,但我将它放在检查器中?
我不希望它看起来像这样
我希望它看起来像这样,即使在向上旋转相机时也是如此。
您可以在您的 Gun Object 上附加一个脚本,该脚本执行以下操作:
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public Quaternion x;
// Use this for initialization
void Start () {
x = transform.rotation;
}
// Update is called once per frame
void Update () {
transform.rotation = x;
}
}
据我了解,您希望 Gun 保持 child,但又希望 "lock" 旋转。此脚本将保留枪的旋转,同时还允许您在不锁定的情况下平移位置。
在 Start 期间将旋转初始存储为四元数,然后在每帧调用 Update 时,它将旋转设置为初始四元数。
将来如果您想将旋转分解为单独的 x、y、z,您可以使用 transform.rotation.x、y、z 锁定某些轴,并将每个单独存储为浮点变量。
经过几个小时的搜索,我终于自己弄明白了。相机连接到的父对象不是统一的形状,因此在旋转相机时会扭曲枪的形状。我只是将父对象的比例设置为 1,1,1,它按预期工作。
在我的等级制度中,我小时候就拿着枪对着我的相机。从图片中可以看出,在向上移动相机时,枪似乎漂浮在空中。我怎样才能使枪相对于相机,以便它粘在相机上,但我将它放在检查器中?
我不希望它看起来像这样
我希望它看起来像这样,即使在向上旋转相机时也是如此。
您可以在您的 Gun Object 上附加一个脚本,该脚本执行以下操作:
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public Quaternion x;
// Use this for initialization
void Start () {
x = transform.rotation;
}
// Update is called once per frame
void Update () {
transform.rotation = x;
}
}
据我了解,您希望 Gun 保持 child,但又希望 "lock" 旋转。此脚本将保留枪的旋转,同时还允许您在不锁定的情况下平移位置。
在 Start 期间将旋转初始存储为四元数,然后在每帧调用 Update 时,它将旋转设置为初始四元数。
将来如果您想将旋转分解为单独的 x、y、z,您可以使用 transform.rotation.x、y、z 锁定某些轴,并将每个单独存储为浮点变量。
经过几个小时的搜索,我终于自己弄明白了。相机连接到的父对象不是统一的形状,因此在旋转相机时会扭曲枪的形状。我只是将父对象的比例设置为 1,1,1,它按预期工作。