[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应该要放在手柄下面,做为手柄的子节点,由于箭头的朝向是相对于手柄朝向的。

相关文章
相关标签/搜索