Unity调用Android原生的震动(简单)

要在unity中调用Android系统的震动,需要一个Vibrator类 ,通过AndroidManifest.xml文件设置权限了

如下:

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

在这里先给贴出英文文档及大概的翻译 :

Class that operates the vibrator on the device.

If your process exits, any vibration you started with will stop.

Vibrator类用来操作设备上的震动,如果你的线程退出了,那么启动的震动也会停止

Pass in an array of ints that are the durations for which to turn on or off the vibrator in milliseconds. The first value indicates the number of milliseconds to wait before turning the vibrator on. The next value indicates the
number of milliseconds for which to keep the vibrator on before turning it off. Subsequent values alternate between durations in milliseconds to turn the vibrator off or to turn the vibrator on.

传递一个整型数组作为关闭和开启震动的持续时间,以毫秒为单位。第一个值表示等待震动开启的毫秒数,下一个值表示保持震动的毫秒数,这个序列值交替表示震动关闭和开启的毫秒数

To cause the pattern to repeat, pass the index into the pattern array at which to start the repeat, or -1 to disable repeating.

为了重复的按设定的节奏震动,传递index参数表示重复次数,用-1表示不重复。

Parameters

pattern     an array of longs of times for which to turn the vibrator on or off.

repeat     the index into pattern at which to repeat, or -1 if you don‘t want to repeat.

上代码:

public void StartShock( long [] mpattern,int index ) {
		vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
		long [] pattern = {100,400,100,400};
		pattern = mpattern;
		vibrator.vibrate(pattern,index);
	}

这里设置两个参数,以便于在unity中灵活定义震动;

同时还有:

public void onStop(){
        super.onStop();
        vibrator.cancel();
    } 

之后把自己的Android工程Clean一下,然后打出自己的 jar包(或者用命令行: jar -cvf myclass.jar *(打包步骤略去)),把打好的jar包放在unity工程中(“Plugins/Android/libs”);

最好我们回到unity,新建一个C#脚本,

贴出代码 :

public static void PlayShock()
		{
//#if UNITY_ANDROID && !UNITY_EDITOR
			if (mshockEnable)
			{
				long[] shock = new long[] { 100, 1000 };
				using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
				{
					AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
					jo.Call("StartShock", shock,-1);
				}
			}
//#endif
		}

通过此方法来调用Android的原生震动。

此教程比较简单,有好的建议,欢迎 轻喷!

时间: 2024-10-13 10:56:27

Unity调用Android原生的震动(简单)的相关文章

Unity调用Android配置方法

方法一:发布eclipse android工程(如图勾选),如同IOS发布xcode一样,在eclipse中编写调用 方法二: 操作过程配置要点: 1.新建Android工程,注意包路径比如我的是com.zx,其他步骤直接下一步完成 2.勾选Mark this project as a library 3.新建Android工程编写相关接口方法后,复制bin文件(只需要zx.jar).res资源包.AndroidMainfest.xml配置文件 4.复制到Unity工程中Plugins/Andr

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) , 已有13次阅读 ,共0个评论 依照我一惯得套路,我会先说一点废话. PhoneGap和Cordova什么关系?为什么有的地方叫Cordova而有的地方叫PhoneGap ?PhoneGap是一款HTML5平台.通过它,开发商能够使用HTML.CSS及JavaScript来开发本地移动应用程序.因此,眼下开

再谈Unity调用Android的Activity

这段时间在研究Unity4.3开发环境下,如何调用由Android SDK4.4.2写的Activity.参考了很多网上的博客,百度出了几十篇大部分都是转载雨松MOMO的,这里必须向雨松MOMO表示敬意!但雨松MOMO写的博客太旧了,不少内容已经过时,我严格按他说的步骤进行,还是出了问题,所以本博客就是告诉大家在Unity4.3+Android SDK4.4.2环境,起动Activity的细节. 我这篇博客不会从零讲起,所以首先给出两个重要的链接,大家应该看一下: 第一个是雨松MOMO的  ht

unity调用Android功能

Unity需要调用Android的功能主要涉及两种方式,一种是使用Android的插件,另一种是导出为GoogleAndroid 工程,进行处理.用途是使用第三方的插件 或者 接入渠道的SDK. 1:使用Android的插件处理. 具体过程,搜索引擎有很多结果,不再赘述. 主要要注意: 导出的jar的时候直接使用Eclipse中的export选项,选择src中的所有以及gen中的R.java即可.另外unity-classes.jar不需要再次包含. 当需要同时使用多个插件的时候: Androi

Unity调用Android的Activity

之前http://shuxiayeshou.blog.51cto.com/4452347/1932216 写了关于Unity与Android结合所遇到的问题及解决方法 总结一下,Unity做一个简单的场景,AndroidStudio建一个简单的项目,其中MainActivity是要继承自 UnityPlayerActivity的,这样Unity程序可以调用Android端MainActivity的方法了 那如果Android项目中还有一个NewActivity,我们要通过Unity把他打开咋办呢

Unity调用Android类方法

1.  添加Unity的classes.jar文件 创建一个Android工程AndroidUnityDemo. 由于Unity的版本不同,直接在Unity安装包文件夹里面搜索classes.jar文件,如果有多个classes.jar文件,一般选择的是mono/Release文件夹下的classes.jar文件. 将classes.jar文件放在app文件下的libs文件夹下. 然后,更新一下. 2.  编写Android类 打开MainActivity.java类,让MainActivity

Unity 调用android插件

1. Unity的Bundle Identifier必须和你的android报名一致 Activity和View的区别: Activity应该是一个展示页面,View是页面上一些按钮视图等等. 如何调用Android插件:  (如果你把方法主入口中的) AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); //参数不变 AndroidJavaObject jo = jc.GetStat

unity调用Android百度地图

由于个人是Android小白,在这个配置上面被折磨了很久,因此写下这篇文章 工具:eclipse + unity5.6.1 首先去百度地图开发者平台下载你需要的资源,我只需要显示地图和定位,这个时候你一定要注意了,一定要把你所需要的功能全部选择了再下载,要不然BaiduLBS_Android.jar包里面只有你选择的那个单个需求的类,下载下来之后将BaiduLBS_Android.jar类复制个副本,将后缀改成.rar格式,解压出来(后面会用到里面的assets文件夹) eclipse中配置:

Unity调用Android的API实现分享功能&lt;转&gt;

问题:如何在unity3d的游戏中实现分享功能,如图 思路: 1.分享功能的实现方式有多种,较方便快捷的一种是直接调用android的API来调出系统的分享界面 2.unity3d里面调用android的API需要为此编写一个android的插件 3.在插件(android的jar包)里面调用Intent类来实现Activity间的消息传递,换出系统的分享控制台 代码: Android插件代码 1 package com.XXX.XXX; 2 3 import android.content.I