[UE4]計算箭頭方向:正切、SetRelativeRotation、RotationFromXVector、Get MotionController Thumbstick X

  

正切函數

正弦函數 sinθ=y/r
餘弦函數 cosθ=x/r
正切函數 tanθ=y/x
餘切函數 cotθ=x/y
正割函數 secθ=r/x
餘割函數 cscθ=r/y
 
已知y和x,求角度θ:arctan(y/x),arctan是反正切,tanθ=y/x,θ=arctan(y/x)。
UE4提供有arctan反正切等經常使用數學函數。

  

 

UE4提供了更直接的函數,能夠把角度很方便的計算出來。3d

  一、表示角度有2種方式:Vector、Rotator。Vector自己也是能夠表示方向,Vector包含方向和大小。blog

  二、Vector和Rotator是能夠互相轉換的。事件

    

  三、手指在手柄圓盤上的位置就是座標,能夠映射到UE4中座標,而後調用RotationFromXVector,就能夠把手指所在位置直接轉換成角度。get

  四、分析手柄本來座標與UE4座標的對應關係。視角的方向正好是X軸,橫軸是Y軸;數學

     

  五、能夠經過MotionController thumbstick X和MotionController thumbstick Y事件獲得手指在手柄圓盤上的位置。thumbstick X和thumbstick Y事件是每一幀都會被調用,若是手指沒有觸摸手柄圓盤,則Axis Value的值爲0。it

    

  六、UE4提供了2個函數能夠更直接地得到手指在手柄圓盤上的位置:Get MotionController Thumbstick X、Get MotionController Thumbstick Yio

    

   七、SetWorldrotation和SetRelativeRotation。咱們拿着手柄的時候,大拇指停留在手柄圓盤的右上角,箭頭朝向就應該是相對於手柄右上角,手拿着手柄轉動的時候,可是大拇指相對於手柄圓盤的位置是不變的,class

    箭頭相對於手柄的朝向是發生變化的,箭頭的絕對朝向和絕對位置都是發生變化的,可是相對於手柄圓盤的朝向和位置是不變的。im

    箭頭的朝向是相對於手柄朝向的。所以咱們要使用相對Rotation來設置,也就是SetRelativeRotation。

    

    

    

     

    Arrow應該要放在手柄下面,做爲手柄的子節點,由於箭頭的朝向是相對於手柄朝向的。

相關文章
相關標籤/搜索