スマゲ

スマートなゲームづくりを目指して日々精進

UnityでAndroidのバイブレーションを呼び出すプラグイン

UnityでAndroidのバイブレーションを直接呼び出すプラグインを作成しました

利用用途
  • Unity標準で利用でいるバイブレーション呼び出しメソッド Handheld.Vibrate 以外の種類のバイブレーションを利用したい
本体

github.com

インストール

GitHubのリリースページにあるunitypackageファイルを利用してください
android端末ではバイブレーションの利用に android.permission.VIBRATE の宣言をAndroidManifestに追加する必要がありますが、プラグイン内部のAndroidLibraryの中に宣言が含まれているのでAndoirdManifestの編集は必要ありません。

使い方

プラグインに鳴らしたい時間(ミリ秒)を渡すだけです

int milliseconds = 100;
UniAndroidVibration.Vibrate(milliseconds);
実装

メソッド呼び出しのWrapをしているだけなのでものすごく単純です

Android Libraryでの実装

public class UniVibration {
    public static void vibrate(int milliseconds)
    {
        Activity activity = UnityPlayer.currentActivity;
        Vibrator vibrator = (Vibrator)activity.getSystemService(Context.VIBRATOR_SERVICE);
        vibrator.vibrate(milliseconds);
    }
}

Unityでの実装

public class UniAndroidVibration
{
    private const string PackageClassPath = "net.sanukin.vibration.UniVibration";
    
    public static void Vibrate(int milliseconds)
    {
#if !UNITY_EDITOR && UNITY_ANDROID
        var javaClass = new AndroidJavaClass(PackageClassPath);
        javaClass.CallStatic("vibrate", milliseconds);
#endif
    }
}
まとめ

Androidは細かい時間や間隔を設定してバイブレーションを鳴らせるので便利、iOSにもこの機能が欲しい