在unity中调用震动一般有两种方式:
1.使用unity自带的 Handheld.Vibrate();
优点:方便、简单
缺点:无法控制震动的频率
2.自己导入jar包到unity中
优点:便于后期的调节震动的频率
缺点:如果是初步接触android studio可能比较麻烦
这次就不说Handheld.Vibrate(),直接调用就ok了。
如果想要自己打包jar导入的unity,你需要配置好javac环境,安装sdk,
且可以打出正常的jar包。这里为什么说是正常的包? 因为在很多时候,可能打出来的jar包导入unity后无法打出apk。比如说:无法实例化android的activity、无法找到xml文件、无法找到29.0.0打包工具、BuildConfig.class文件重复等奇葩问题。
android studio代码
这里的mpattern数组 mpattern[0] 是延迟震动时间,mpattern[1]是震动的频率,mpattern[2]是暂停时间,mpattern[3]是震动的频率 依此类推
index:震动的类型
index = -1 只震动一次
index = 0 一直震动
public void StartVibrator(long [] mpattern,int index) {
//获取Vibrator实例
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(pattern,index);
}
unity 代码
//实例化UnityPlayer类
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
//实例化Android继承的UnityPlayerActivity的Activity
AndroidJavaObject jo = jc.GetStatic("currentActivity");
long[] shock = new long[] { 0, 150 };
jo.Call("StartShock", shock, -1);
更多unity2018的功能介绍请到paws3d爪爪学院查找。