我有一个由两部分组成的枪(一个是手柄,两个是喷嘴)。我想在打靶时转动喷嘴。
我在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;
}
}
这似乎是一件简单的事情,但我被卡住了。
结果如下:
发布于 2016-10-10 20:31:52
在我看来,您的transform.Rotate参数不正确。应该是这样的
gunNozzle.transform.Rotate(Vector3.right * Time.deltaTime);
注:在我的示例中,向量方向可能是错误的。
发布于 2016-10-10 20:38:13
尝试在Rotate()中包含Space.Self或Space.World
https://stackoverflow.com/questions/39958230
复制相似问题