Unity繞x軸旋轉並限制角度的陷阱

2021-09-07 10:15:18 字數 470 閱讀 9086

在製作fps相機時,遇到了需要限制角度的需求,視角只能檢視到-60到60度的範圍,而在unity的transform元件中,繞x軸逆時針旋轉,transform元件的localeulerangle會在0~360範圍內遞增(如圖)

關鍵在於其中的角度轉換,直接上**

public static void rotateclampx(this transform t, float degree, float min, float max)

degree = mathf.clamp(degree, min, max);

t.localeulerangles = t.localeulerangles.setx(degree);

}

參考了這位老兄的文章並稍微簡化了一下

繞任意軸旋轉

關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理。該方法實際上...

繞任意軸旋轉

繞任意軸旋轉 關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理...

繞任意軸旋轉

關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理。該方法實際上...