2019年7月28日日曜日

[Unity] Oculus Questのコントローラーを振動させる

コントローラーを振動させる方法を記載しておきます。

マニュアル
static void OVRInput.SetControllerVibration ( float frequency, float amplitude, Controller controllerMask )
static void OVRInput.SetControllerVibration(float 周波数, float 振幅, Controller controllerMask)
振幅と周波数は、0~1までの範囲です。 値が大きいほど、コントローラーの振動が強くなります。 
振動を終了させるには、振幅と周波数の両方を0に設定します。
デフォルトでは2秒後に自動的に終了します。

参考として、銃を持てるクラスを作成し銃弾を発射したときに振動させるサンプルです。

public class Weapon : OVRGrabbable {

void Fire() {
     //振動処理を呼び出す
     StartCoroutine(Vivration(0.2f));
}
}


    //---------------------------------------
    //コントローラーを振動させる処理
    //time: 振動させる秒数
    //---------------------------------------
    IEnumerator Vivration(float time) {
//握られているコントローラーを検出
        var activeController = OVRInput.GetActiveController();
//振動させる
        OVRInput.SetControllerVibration(1, 1, activeController);
//振動を止めるまで待機
        yield return new WaitForSeconds(time);
//振動を止める
        OVRInput.SetControllerVibration(0, 0, activeController);
    }

0 件のコメント:

コメントを投稿