程式碼:

using UnityEngine;
using System.Collections;
 
public class TestVibrate : MonoBehaviour {
 
    AndroidJavaObject v;
 
    void Start () {
        #if UNITY_ANDROID
        using(AndroidJavaClass p = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
                using(AndroidJavaObject a = p.GetStatic<AndroidJavaObject>("currentActivity")) {
                v = a.Call<AndroidJavaObject>("getSystemService", "vibrator");
            }
        }
        #endif
    }
 
    void Vibrate(long time){ // 此部分要單獨寫成方法(函式),不可單獨呼叫
        v.Call("vibrate", time);
    }
 
    float t = 5;
 
    void Update () {
        if((t+= Time.deltaTime) > 0.2F){ // 每 0.2 秒震動一次
            t = 0;
            Vibrate(150); // 震動 0.15 秒
        }
    }
 
}
 

記得加入 AndroidManifest.xml 
這個要放在 <Unity專案路徑>/Assets/Plugins/Android/AndroidManifest.xml 內,路徑名稱要一樣且不可以打錯,因為這路徑/檔名是官方內定的。寫 AndroidManifest.xml 的目的就是為了在Android 取得震動控制權限,如:<uses-permission android:name="android.permission.VIBRATE"/>,詳細XML代碼如下:


<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <uses-permission android:name="android.permission.VIBRATE"/>

    <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false">

    <activity android:name="com.unity3d.player.UnityPlayerProxyActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="portrait">
</activity>

    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="portrait">
    </activity>

    <activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="portrait">
    </activity>

    <activity android:name="com.unity3d.player.VideoPlayer" android:label="@string/app_name" android:screenOrientation="behind" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    </activity>

    </application>

</manifest>




arrow
arrow
    全站熱搜

    黃彥霖 發表在 痞客邦 留言(0) 人氣()