枪没有以理想的方式相对于相机保持相对位置

问题描述 投票:0回答:2

在我的等级制度中,我小时候就拿着枪和相机。从图片中可以看出,当相机向上移动时,枪似乎漂浮在空中。我怎样才能使枪相对于相机,以便无论我将其放置在检查器中,它都会粘在相机上?

我不希望它看起来像这样

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

c# unity-game-engine
2个回答
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 期间将旋转最初存储为四元数,然后当每帧调用 Update 时,它将把旋转设置为初始四元数。

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


0
投票

经过几个小时的搜索,我最终自己弄清楚了。相机连接到的父对象不是统一的形状,因此在旋转相机时会扭曲枪的形状。我只需将父对象的比例设置为 1,1,1,它就按预期工作了。

© www.soinside.com 2019 - 2024. All rights reserved.