Android调用Unity方法实战:实现互操作

本文讲详细介绍android工程集成unity项目,及达成android和unity工程之间相互调用的实现方案
主要分成两部分 1:集成2:通信

课前准备

1.准备安卓项目

相信会看这篇文章的同学都有一定的安卓基础了,as创建一个空工程备用

然后准备一个java接口类备用,这个接口类可以在先在as里创建好,

android怎么调用unity的方法 android unity_游戏引擎登录后复制


public class   AndroidUnityBridge {
 private static final String TAG = "AndroidUnityBridge";
 private UnityInterface unityInterface;
 public static AndroidUnityBridge instance;
 public static AndroidUnityBridge GetInstance(){
      if (instance == null){
           instance = new AndroidUnityBridge();
      }
      return instance;
 }

 public void setMsg(String s){
      Log.i(TAG, "setMsg: "+ s);

      if (unityInterface!=null){
           UnityPlayer.UnitySendMessage("Cube", "setString", s+  unityInterface.setFuntion("first param", "second param"));
      }
 }

 public void setUnityInterface(UnityInterface unityInterface) {
      this.unityInterface = unityInterface;
 }

 public String getStrings(){
      if (unityInterface !=null){
           return unityInterface.setFuntion("fisrt", " second");
      }
      return "null";
 }
 
 

}

配置好ndk环境

android怎么调用unity的方法 android unity_游戏引擎_02

添加unityStreamingAssets配置

android怎么调用unity的方法 android unity_android_03

登录后复制


unityStreamingAssets=.unity3d

在strings.xml配置需要的字符串

登录后复制


<string name="game_view_content_description">Game view</string>

不配置会报错

android怎么调用unity的方法 android unity_初始化_04

2.准备unity项目

下载安装unity请找相关攻略,这里不展开介绍,启动unity创建一个空的项目,然后创建一个正方体

android怎么调用unity的方法 android unity_初始化_05

然后创建一个脚本文件添加到cube上

android怎么调用unity的方法 android unity_初始化_06

脚本内容如下

android怎么调用unity的方法 android unity_游戏引擎_07

android怎么调用unity的方法 android unity_初始化_08

很简单,写了几个测试方法

这里注意几点,首先,unity里的方法名要和android里的对应,另外实现类的路径要和android里的对应
比如这里的base(“com.unity.mynativeapp.UnityInterface”)
base里的内容是android里定义的接口的路径

好,到这里我们的准备工作就做完了

导出unity工程集成包

打开unity工程,打开build settings 窗口,切换到android platform,勾选export project
点击export 等待导出工程

android怎么调用unity的方法 android unity_游戏引擎_09


android怎么调用unity的方法 android unity_unity_10

等待片刻,导出的工程目录包含一个启动工程和一个unitylibrary

android怎么调用unity的方法 android unity_android怎么调用unity的方法_11

我们只要unity library就可以了

集成unity Library到android工程

打开android studio ,选择导入module,把unity Library导入到android工程,同时完成依赖设置

android怎么调用unity的方法 android unity_android_12

android怎么调用unity的方法 android unity_android怎么调用unity的方法_13

为了让主工程能用到library里的jar 需要在library的gradle里修改下设置

android怎么调用unity的方法 android unity_游戏引擎_14


改为 api或者

android怎么调用unity的方法 android unity_unity_15


这样在app工程里就可以访问UnityPlayerActivity了

相互通信

首先需要建立通信连接,这里的方式是,安卓端写接口,unity实现接口,unity使用的地方初始化AndroidUnityBridge,并设置UnityInterface

android怎么调用unity的方法 android unity_unity_16


unity调用android的方法,先初始化安卓端定义的类,然后拿着类去调用对应的方法名,如上android调用unity的方法,直接拿着android端定义的接口类去调用

android怎么调用unity的方法 android unity_unity_17

技巧

unity导出的工程里就只有UnityPlayerActivity一个类
里面有一个UnityPlayer unity工程画面就是这个对象

我们可以直接用UnityPlayer去当view使用,因为UnityPlayer继承的

android怎么调用unity的方法 android unity_初始化_18

但是注意,要在对应的activity里调用UnityPlayer的生命周期

onCreate 里调用

android怎么调用unity的方法 android unity_初始化_19


让界面显示unity画面最主要是要重写 onResume 和 onWindowFocusChanged 方法,

其他的生命周期最好都要掉一下,参考UnityPlayerActivity里的写法

android怎么调用unity的方法 android unity_unity_20

注意:

android怎么调用unity的方法 android unity_android怎么调用unity的方法_21

               

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空