物体不绕其轴旋转

时间:2016-10-10 12:23:55

标签: c# unity3d

我有一个由两部分组成的枪(1个是手柄,2个是喷嘴)。我想在射击目标时旋转喷嘴。

I want to rotate the Nozzle like this

我在fire功能中使用以下代码

gunNozzle.transform.Rotate(0, 0, 10);

增加旋转值,但结果不同。这是完整的功能:

void Update()
{
    if (Input.GetKeyDown(KeyCode.P))
    {
        isOut = true;
    }
    if (isOut)
    {     
        playerAnim.CrossFade("gunplays", 0.03f);
        gunNozzle.transform.Rotate(0, 0, 10);
        audioSource.Play();
        GameObject cloneArrow = (GameObject)Instantiate(theArrow, thePos, Quaternion.identity);
        cloneArrow.transform.position = thePos;
        cloneArrow.transform.rotation = this.transform.rotation;
        isOut = false;
    }
}

这似乎很简单,但我被卡住了。

结果如下:

Here is the result of the above code

2 个答案:

答案 0 :(得分:0)

你要改造的参数。旋转对我来说看起来不对。应该像

gunNozzle.transform.Rotate(Vector3.right * Time.deltaTime);

Nb:在我的例子中,矢量方向可能是错误的。

答案 1 :(得分:0)

尝试在Rotate()

中包含Space.Self或Space.World