# SDKの使用方法

# 使用例

Assets/Sample/ フォルダ内に HowToUse_SteamVR という名前のサンプルシーンがあります。 このシーンでは、ボタン入力による振動の発生、ジョイスティックによる移動、指の曲げ具合の表示を行っています。

本ページではこのシーンを使用して、ContactGlove API の使用方法を説明します。

# ContactGlove API へのアクセス

ContactGloveManagerWithSteamVR.cs がアタッチされているオブジェクトから コンポーネントを取得することで、ContactGlove API へアクセスすることができます。

IContactGloveManager gloveManager = GetComponent<IContactGloveManager>();

サンプルシーンでは、ContactGloveManage という名前のオブジェクトに ContactGloveManagerWithSteamVR がアタッチされています。

howtouse2

HowToUse という名前のオブジェクトにアタッチされている HowToUse.csでは、 Start関数内で IContactGloveManager を取得しています

howtouse1

void Start()
{
    this.cgManager = contactGloveObj.GetComponent<IContactGloveManager>();
}

このようにして取得した IContactGloveManager を通じて ContactGlove API へアクセスすることができます。

# 振動の発生

HowToUse シーンでは、キーボード入力によって振動を発生させています。

void Update()
{
    if (Input.GetKeyDown(KeyCode.F))
    {
        cgManager.SetVibration(HandSides.Left, 0.2f, 160.0f, 0.5f);
    }
    if (Input.GetKeyDown(KeyCode.J))
    {
        cgManager.SetVibration(HandSides.Right, 0.2f, 160.0f, 0.5f);
    }
}

# 指の関節の回転量の取得

float flex = cgManager.GetFingerRotationAmplitude(HandSides.Left, FingerRotationAmplitude_e.IndexDistal);

上記のコードでは、左手の人差し指の第1関節の回転量を取得しています。

# コントローラ入力

特定のコントローラの入力があった場合に、振動を発生させるコードです。

void Start()
{
    this.cgManager.AddOnControllerInputHandler(HandSides.Left, ControllerBoolInputType.A, () =>
    {
        cgManager.SetVibration(HandSides.Left, 0.5f, 160, 0.1f);
    });
}

上記のコードでは、左手のAボタンが押された時に、振動を0.1秒間発生させています。

また、コントローラの入力値を取得したい場合は、以下のようにします。

bool leftA = cgManager.GetControllerInput(HandSides.Left, ControllerBoolInputType.A);
float rightX = cgManager.GetControllerInput(HandSides.Right, ControllerFloatInputType.JoystickX);

より詳細な使用方法については、ドキュメントを参照してください。