Skip to content

Instantly share code, notes, and snippets.

@aVolpe
Created October 16, 2014 02:45
Show Gist options
  • Select an option

  • Save aVolpe/707c8cf46b1bb8dfb363 to your computer and use it in GitHub Desktop.

Select an option

Save aVolpe/707c8cf46b1bb8dfb363 to your computer and use it in GitHub Desktop.

Revisions

  1. aVolpe created this gist Oct 16, 2014.
    61 changes: 61 additions & 0 deletions Vibration.cs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,61 @@
    using UnityEngine;
    using System.Collections;

    public static class Vibration
    {

    #if UNITY_ANDROID && !UNITY_EDITOR
    public static AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    public static AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
    public static AndroidJavaObject vibrator = currentActivity.Call<AndroidJavaObject>("getSystemService", "vibrator");
    #else
    public static AndroidJavaClass unityPlayer;
    public static AndroidJavaObject currentActivity;
    public static AndroidJavaObject vibrator;
    #endif

    public static void Vibrate()
    {
    if (isAndroid())
    vibrator.Call("vibrate");
    else
    Handheld.Vibrate();
    }


    public static void Vibrate(long milliseconds)
    {
    if (isAndroid())
    vibrator.Call("vibrate", milliseconds);
    else
    Handheld.Vibrate();
    }

    public static void Vibrate(long[] pattern, int repeat)
    {
    if (isAndroid())
    vibrator.Call("vibrate", pattern, repeat);
    else
    Handheld.Vibrate();
    }

    public static bool HasVibrator()
    {
    return isAndroid();
    }

    public static void Cancel()
    {
    if (isAndroid())
    vibrator.Call("cancel");
    }

    private static bool isAndroid()
    {
    #if UNITY_ANDROID && !UNITY_EDITOR
    return true;
    #else
    return false;
    #endif
    }
    }