忘れそうなので自分用メモとして残しておきます。
Unity 2019.4で確認済みです。
今回はこちらのXInputDotNetというライブラリを使用させていただきました。
とても助かりました。感謝。
https://github.com/speps/XInputDotNet.git
手順
https://github.com/speps/XInputDotNet/releases
上にある最新のunityPackageをプロジェクトにインポートして
VibrationTest.cs
XInputDotNetPure.GamePad.SetVibration(0,5,5);この一行で振動してくれました。お手軽。
左右別々のモーターをそれぞれ動かすことができるようです。
例
例えばこんな風にテスト用のスクリプトを書いてみました。
VibrationTest.cs
usingSystem.Collections;usingUnityEngine;usingXInputDotNetPure;publicclassVibrationTest:MonoBehaviour{[SerializeField]floatright_power=1;[SerializeField]floatleft_power=1;[SerializeField]floatduration=0.5f;voidUpdate(){if(Input.GetButtonDown("Fire1")){StartCoroutine("RightVibration");}if(Input.GetButtonDown("Fire2")){StartCoroutine("LeftVibration");}}IEnumeratorRightVibration(){GamePad.SetVibration(0,0,right_power);yieldreturnnewWaitForSecondsRealtime(duration);GamePad.SetVibration(0,0,0);}IEnumeratorLeftVibration(){GamePad.SetVibration(0,left_power,0);yieldreturnnewWaitForSecondsRealtime(duration);GamePad.SetVibration(0,0,0);}}今のところ0をセットすることで振動を止めていますが、これでいいのでしょうか…