枪不会以理想的方式相对于相机保持不动

时间:2016-09-29 19:39:55

标签: c# unity3d monodevelop

在我的等级制度中,我小时候把枪拿到相机上。从图片中可以看出,当相机向上移动时,喷枪似乎漂浮在空中。如何将枪相对于相机制作,使其粘在相机上,但是我将它放在检查员的位置?

我不希望它看起来像这样

即使向上旋转相机,我也希望它看起来像这样。

2 个答案:

答案 0 :(得分:0)

你可以在你的枪对象上附上一个脚本:

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;
    }
}

根据我的理解,你希望枪仍然是一个孩子,但你想要锁定"回转。这个脚本将保留枪的旋转,同时也让你翻译位置而不锁定它。

在Start期间最初将旋转存储为Quaternion,然后在每帧调用Update时,它将旋转设置为初始四元数。

将来如果要将旋转分解为单独的x,y,z,可以使用transform.rotation.x,y,z锁定某些轴,并将每个轴单独存储为浮点变量。

答案 1 :(得分:0)

经过几个小时的搜索,我最终自己搞清楚了。相机连接的父对象不是均匀的形状,因此在旋转相机时会使枪的形状倾斜。我只是将父对象的比例设置为1,1,1,它可以按预期工作。