VRChatでコントローラーのスティック入力を取得する方法

対象

コントローラーのスティック入力を取得して色々したいなと思った人

例えば、移動の入力をドローンなどの操作の移動に変更するといったもの

検証環境

Unity2019.4.31f1 VRChatSDK-World 3.4.0 VRChatSDK-Base 3.4.0

やり方

UdonSharpBehaviorを継承して、以下のメソッドを追加する

  • InputMoveHorizontal
  • InputMoveVertical

具体的には以下の通り

public class VRCSample : UdonSharpBehaviour
{
       //水平方向の入力を受け取る
       public override void InputMoveHorizontal(float value, VRC.Udon.Common.UdonInputEventArgs args)
       {
     }
        
        //垂直方向の入力を受け取る
        public override void InputMoveVertical(float value, VRC.Udon.Common.UdonInputEventArgs args)
        {
        
        }
}

これらのメソッドに関しては、DeskTop、VR共にさほど変化はなく Horizontalの場合は、左移動の時は、負の数値、右移動の時は、正の数値が入力される Desktopの際は、-1,0,1と入力が返されるが、VRの場合は-0.99 ~ ,0,~0.99が返却される。

Verticalは前後移動の際に同様の数値が返却され、 前方向は正の数値、後ろ方向は負の数値が返却される。

参考

udonsharp.docs.vrchat.com