Unity3D如何防止"倾斜"仅在x和z轴上旋转时?

时间:2015-08-12 14:42:22

标签: unity3d rotation

(这是3d。附上屏幕截图供参考。)

我在这里或其他地方读过很多关于类似于我的问题的文章,但没有解决它。我的手枪指向前方,我只在x和z轴(上,下,左,右)上旋转,但我的手枪总是向左或向右倾斜。我尝试了这样的解决方案(Problems limiting object rotation with Mathf.Clamp())(用x代替y)但我的枪最终冻结或处于奇怪的位置。我想我在这里错过了一个基本概念。

我还应该提一下,向左,向右,向上自行向上旋转确实可以正常工作但是将它们组合在一起时就是出现问题。例如:左旋转>然后向上旋转>然后左转,然后我以标题位置结束

你可以在图片中看到我左下方的控件只允许用户向上,向左和向下移动枪 - 但不知何故,枪向上倾斜,在此屏幕右侧拍摄 - - 我想防止向右或向左倾斜。

public void Update()
         {
             if (mButtonHeld) {
                 switch(mCurBtnName){
                     case "ButtonUp":
                     mPistol.transform.Rotate (PISTOL_INCREMENT, 0, 0); 

                     break;
                     case "ButtonDown":
                        mPistol.transform.Rotate (-PISTOL_INCREMENT, 0, 0); 

                     break;
                     case "ButtonLeft":
                         mPistol.transform.Rotate(0,0,-PISTOL_INCREMENT_LR);    

                     break;
                     case "ButtonRight":
                         mPistol.transform.Rotate(0,0,PISTOL_INCREMENT_LR);
                     break;
                 }
                         //How can I lock y axis here??
             } 
         }

enter image description here

1 个答案:

答案 0 :(得分:1)

将旋转应用于不同的轴不是可交换的;订单很重要,这可能是导致您出现问题的原因。一个简单的解决方法是做类似的事情:

$_POST["item_id"]