文章目录

Android 工程1.Create Project —— 创建安卓工程2.Create Module —— 新建一个模块3.导入 Unity Jar —— Unity 的 Jar 包导入到安卓库中4.新建 Activity5.修改配置文件和清单文件

生成 Android Jar 文件Unity 工程1.Create C# Script —— 在 Unity中创建一个C#脚本2.Create Unity UI —— 在 Unity中创建简单的UI3.PlayerSettings —— Unity打包App之前的设置4.Builde —— 打包打真机上测试

Unity 获取 Android 类、类的方法函数、字段属性参考链接

Android 工程

1.Create Project —— 创建安卓工程

默认即可

2.Create Module —— 新建一个模块

切换至 Project 视图下

3.导入 Unity Jar —— Unity 的 Jar 包导入到安卓库中

找到 Unity Jar 包(在 unity 安装目录下) 将复制的 jar 粘贴到创建的 Module lib 目录下并添加到库

4.新建 Activity

切换到 Android 视图下(不切换也可以,但结构会复杂些)

5.修改配置文件和清单文件

修改MainActivity 修改 AndroidMainfest.xml app 中的 AndroidMainifest 文件是完整的,我们可以直接赋值里边的数据,并稍作修改,在这里边添加一段代码标示:表明 我们创建的这个库是给 Unity 用的

修改 bulild.gradle

afterEvaluate {

generateReleaseBuildConfig.enabled = false

generateDebugBuildConfig.enabled = false

}

生成 Android Jar 文件

切换到 Project 目录下,在文件夹中打开该文件 将上面的三个文件夹导入到 unity 的 Assets/Plugins/Android 下

Unity 工程

1.Create C# Script —— 在 Unity中创建一个C#脚本

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

public class UAExTest : MonoBehaviour

{

public Button btn;

public Text text1;

public Text text2;

private AndroidJavaObject jo = null;

// Start is called before the first frame update

void Start()

{

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

jo = jc.GetStatic("currentActivity");

btn.onClick.AddListener(()=>{

int res = jo.Call("Add", 1, 2);

text1.text = res.ToString();

});

}

public void UnityMethodA(string a)

{

text2.text = a;

}

}

2.Create Unity UI —— 在 Unity中创建简单的UI

3.PlayerSettings —— Unity打包App之前的设置

注意: 更改下 PlayerSettings 中的 Package Name 需要与 AndroidManifest.xml 中的包名保持一致

4.Builde —— 打包打真机上测试

Unity 获取 Android 类、类的方法函数、字段属性

// 1. 获取 Android 包下(类似于C#的命名空间)的指定类,方法一

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

AndroidJavaObject jo = jc.GetStatic("currentActivity");

// 2. 获取 Android 包下(类似于C#的命名空间)的指定类,方法二

AndroidJavaClass mainActivityClass = new AndroidJavaClass("com.xan.intentreceiver.MainActivity"

// 下面函数还可传其它参数,具体看API

1、Call<返回参数>("非静态公共函数名") 调用非静态公共函数

ReturnType Call(string methodName, params object[] args);

2、CallStatic<返回参数>("静态公共函数名") 调用静公共态函数

3、Get<字段类型>("非静态公共字段名称") 获取非静态公共字段

4、GetStatic<字段类型>("静态公共字段名称") 获取静态公共字段

5、Set<字段类型>("非静态公共字段名称") 设置非静态公共字段

6、SetStatic<字段类型>("静态公共字段名称") 设置静态公共字段

参考链接

Unity 与 Android 交互

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: