Unity3d 我的枪是根据鼠标移动的,但发射子弹时也会绕轴旋转,为什么?

Unity3d 我的枪是根据鼠标移动的,但发射子弹时也会绕轴旋转,为什么?,unity3d,unityscript,Unity3d,Unityscript,当我按下“左键单击”发射子弹时,意味着(当仍然单击鼠标左键时)我将枪左右移动我的枪继续发射子弹,但也开始围绕其原点旋转? 但如果我不点击鼠标左键移动枪,它就不会绕着它的轴旋转 var-clickPos:Vector2; var offsetPos:Vector2; var除法器=80; 函数Start() { 单击位置=矢量2(0,0); offsetPos=Vector2(0,0); } 函数更新(){ offsetPos=Vector2(0,0); if(Input.GetKeyDown(l

当我按下“左键单击”发射子弹时,意味着(当仍然单击鼠标左键时)我将枪左右移动我的枪继续发射子弹,但也开始围绕其原点旋转? 但如果我不点击鼠标左键移动枪,它就不会绕着它的轴旋转

var-clickPos:Vector2;
var offsetPos:Vector2;
var除法器=80;
函数Start()
{
单击位置=矢量2(0,0);
offsetPos=Vector2(0,0);
}
函数更新(){
offsetPos=Vector2(0,0);
if(Input.GetKeyDown(leftClick()))
{
单击pos=mouseXY();
}
if(Input.GetKey(leftClick()))
{
offsetPos=点击pos-mouseXY();
}
变换。旋转(矢量3(-(偏移位置y/分隔符)、偏移位置x/分隔符,0.0)、空间。世界);
}
//打印当前鼠标位置
函数OnGUI()
{
/*GUI.Label(Rect(10350200100),“mouse X=“+Input.mousePosition.X”);
GUI.Label(Rect(10370200100),“mouse Y=“+Input.mousePosition.Y”);
GUI.Label(Rect(120350200100),“click X=“+clickPos.X”);
GUI.标签(Rect(120370200100),“单击Y=”+单击位置Y);
GUI.Label(Rect(210350200100),“offset X=“+offsetPos.X”);
GUI.标签(Rect(210370200100),“偏移Y=“+offsetPos.Y”)*/
}
//////////////////////////////////////////////
//单击或按住鼠标左键时返回true
函数leftClick()
{
返回KeyCode.Mouse0;
}
//鼠标的即时位置
函数mouseXY()
{
返回向量2(Input.mousePosition.x,Input.mousePosition.y);
}
//鼠标X坐标的直接位置
函数mouseX()
{
返回输入.mousePosition.x;
}
//鼠标Y坐标的直接位置
函数mouseY()
{
返回Input.mousePosition.y;
}
我得到了答案 答案是 注释代码中使用的每个位置的偏移值。 保持代码简单,注释或消除代码中的旋转线,这样就不会在枪上执行旋转动作,只会在移动时改变位置