Skip to main content
ARShow
ARShow
 首页 » 资源教程 » Unity3D教程

Unity3d 调用Android震动

2016年09月01日 14:56:4014760

Android 代码如下:

[java] view plain copy
  1. package com.xuefei.vibration;  
  2.   
  3. import com.unity3d.player.UnityPlayerActivity;  
  4.   
  5. import android.app.Service;  
  6. import android.os.Bundle;  
  7. import android.os.Vibrator;  
  8.   
  9. public class MainActivity extends UnityPlayerActivity {  
  10.   
  11.     static MainActivity ma;  
  12.   
  13.     @Override  
  14.     protected void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         ma = this;  
  17.     }  
  18.   
  19.     /** 
  20.      * final Activity activity :调用该方法的Activity实例 long milliseconds :震动的时长,单位是毫秒 
  21.      * long[] pattern :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒 
  22.      * boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次 
  23.      */  
  24.   
  25.     public static void Vibrate(final String milliseconds) {  
  26.         Vibrator vib = (Vibrator) ma.getSystemService(Service.VIBRATOR_SERVICE);  
  27.         vib.vibrate(Long.parseLong(milliseconds));  
  28.     }  
  29.   
  30.     /*public static void Vibrate(final long[] pattern, boolean isRepeat) { 
  31.         Vibrator vib = (Vibrator) ma.getSystemService(Service.VIBRATOR_SERVICE); 
  32.         vib.vibrate(pattern, isRepeat ? 1 : -1); 
  33.     }*/  
  34. }  



AndroidManifest.xml

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.xuefei.vibration"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="14"  
  9.         android:targetSdkVersion="14" />  
  10.       
  11.     <uses-permission android:name="android.permission.VIBRATE" />    
  12.   
  13.     <application  
  14.         android:allowBackup="true"  
  15.         android:icon="@drawable/ic_launcher"  
  16.         android:label="@string/app_name"  
  17.         android:theme="@style/AppTheme" >  
  18.         <activity  
  19.             android:name="com.xuefei.vibration.MainActivity"  
  20.             android:label="@string/app_name" >  
  21.             <intent-filter>  
  22.                 <action android:name="android.intent.action.MAIN" />  
  23.   
  24.                 <category android:name="android.intent.category.LAUNCHER" />  
  25.             </intent-filter>  
  26.         </activity>  
  27.     </application>  
  28.   
  29. </manifest>  



unity3d 代码如下:

[csharp] view plain copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class VibrateTest : MonoBehaviour {  
  5.   
  6.     AndroidJavaClass jc;  
  7.     AndroidJavaObject jo;  
  8.     // Use this for initialization  
  9.     void Start () {  
  10.         jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");  
  11.         jo = jc.GetStatic<AndroidJavaObject> ("currentActivity");  
  12.     }  
  13.       
  14.     // Update is called once per frame  
  15.     void Update () {  
  16.       
  17.     }  
  18.     void OnGUI()  
  19.     {  
  20.         if (GUI.Button (new Rect (0, 0, 200, 100), "Vibrate")) {  
  21.             jo.CallStatic("Vibrate","100");  
  22.         }  
  23.     }  
  24. }  



文件操作流程:

安卓创建项目,我设置了目标版本4.0,Is Library ,

Unity 关键目录如下,文件从Android项目拷贝过来

Unity3d 调用Android震动 Unity3D教程 第1张

真机测试震动100毫秒

Unity3d 调用Android震动 Unity3D教程 第2张

点击这里下载工程文件

unity版本4.6.2f1

评论列表暂无评论
发表评论