欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity与安卓交互(以震动为例)

程序员文章站 2022-04-20 11:49:00
...

Unity与安卓交互

一、AndroidStudio

1.打开AndroidStudio后新建一个Empty Acticity项目Unity与安卓交互(以震动为例)

2.点击Next进行下一步

Unity与安卓交互(以震动为例)

3.name自己取一个,包名我设置为com.unity3d.player,接入多个sdk容易整合语言我们选择java,Api设置为17,然后点击Finish完成

name: TestDemo
Package name: com.unity3d.player
language: Java
Api: 17
Unity与安卓交互(以震动为例)

4.稍等AS加载一下,我们就可以搭建安卓和Unity通讯了

Unity与安卓交互(以震动为例)

5.我们将AS切换到Project视图

Unity与安卓交互(以震动为例)

6.将Unity的jar包放到AS的app-libs文件夹下

jar包的位置:
你的Unity安装位置\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
Unity与安卓交互(以震动为例)
AS的app-libs打开快捷方式
Unity与安卓交互(以震动为例)
复制粘贴过来就行了
Unity与安卓交互(以震动为例)

7.将jar包添加到Library

(1.)我们右键点击app,然后选择Open Moudle Settings打开模式设置
Unity与安卓交互(以震动为例)
看到classes.jar包被依赖上了
Unity与安卓交互(以震动为例)
(2.)右键libs下的classes,然后选择add As Libratr…
Unity与安卓交互(以震动为例)
点击Ok!
Unity与安卓交互(以震动为例)

8.加载完成后就可以修改MainActivity.jar文件

先找到它
Unity与安卓交互(以震动为例)

Unity与安卓交互(以震动为例)
(1.)将MainActivity.jar文件的继承从 AppCompatActivity 改成 UnityPlayerActivity
(2.)删掉文件中灰色的引用:
Unity与安卓交互(以震动为例)
(3.)删掉 setContentView(R.layout.activity_main);
Unity与安卓交互(以震动为例)
(4.)打开app文件夹下的build.gradle
Unity与安卓交互(以震动为例)
1)、最上方的 apply plugin: ‘com.android.application’ 改为 apply plugin: ‘com.android.library’
2)、注释掉 applicationId “你的包名”
3)、注释掉测试用的 testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”
Unity与安卓交互(以震动为例)
注释掉下面的这四项
Unity与安卓交互(以震动为例)

9.删掉styles.xml文件

文件位置:app-src-main-res-values-styles.xml
Unity与安卓交互(以震动为例)

10.修改activity_main.xml

文件位置:app-src-main-res-layout-activity_main.xml
Unity与安卓交互(以震动为例)
1.)如果界面是这个样子的,就点击下面这个Text
Unity与安卓交互(以震动为例)
2.)删掉红框所选区域
Unity与安卓交互(以震动为例)
3.)删掉灰色代码
Unity与安卓交互(以震动为例)

11.修改AndroidManianifest.xml文件

文件位置:app/src/main/AndroidManianifest.xml
Unity与安卓交互(以震动为例)
a、将 android:theme="@style/AppTheme"> 改为 android:theme="@android:style/Theme.NoTitleBar">

b、将 改为
Unity与安卓交互(以震动为例)

12.我们返回MainActivity.jar文件添加方法,供Unity调用

1.)添加 UnityCallShake 方法,

 public void UnityCallShake(String msg){
        Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_LONG).show();
        Vibrator vibrator=(Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);
        vibrator.vibrate(2000);
   	 }

2.)需要import这几个包

import android.app.Service;
import android.os.Vibrator; import
android.widget.Toast;

点击这个小灯泡
Unity与安卓交互(以震动为例)
添加震动权限
Unity与安卓交互(以震动为例)

13.导出jar包

Unity与安卓交互(以震动为例)
等待加载完成
Unity与安卓交互(以震动为例)

14.找到jar包,打开文件位置,解压jar包

jar包位置:app-build-outputs-arr-app-debug.arr
Unity与安卓交互(以震动为例)
使用你的压缩软件解压,没有解压选项选择打开方式,如果你的解压软件不支持,那就下载一个别的
Unity与安卓交互(以震动为例)
解压完成
Unity与安卓交互(以震动为例)
将文件里的libs、res、AndroidManifest.xml文件 复制到Unity文件夹Assets-Plugins-Android文件夹下。
Unity与安卓交互(以震动为例)
删掉libs文件夹的classes.jar包,替换为②解压文件根目录里的classes.jar包。
Unity与安卓交互(以震动为例)

15.在Unity调用Jar包

using UnityEngine;
 
public class ClickShake : MonoBehaviour {
 
    AndroidJavaObject JavaObject;
 
	void Start () {
        //以下两行是调用AScurrentActivity中方法的默认写法。不需修改。
        AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        JavaObject = androidJavaClass.GetStatic<AndroidJavaObject>("currentActivity");
	}
 
    public void ClickShakeBtn()
    {
        JavaObject.Call("UnityCallShake", "来自Unity的调用");
    }

16.打包

a、包名与AS保持一致

b、Unity最小API与AS保持一致

c、用Internal打包
本文转自博主橙子va

相关标签: AndroidStudio