Android集成unity工程以及交互的那些事

Android端集成步骤

第一步引入 unityLibrary包到项目中

File --> new --> import module  导入library

第二步在settings.gradle里面添加

project(':unityLibrary').projectDir=new File('unityLibrary')

第三步 项目级build.gradle里面添加

 flatDir {

    dirs "${project(':unityLibrary').projectDir}/libs"

}

第四步 修改unityLibrary里面的 AndroidManifest.xml 文件

删除

<intent-filter>

    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

<meta-data

    android:name="android.notch_support"

android:value="true" />

这样就不会app启动时先启动unity程序

在 <activity> 添加 使unity成为独立的进程,这样退出unity时不会闪退

android:launchMode="singleTask"
android:process="e.unity3d"

第五步在unityLibrary新建一个 MyUnityPlayer.class 继承UnityPlayer 

重写 一个 kill空方法 这样unity返回到app主界面不会卡顿

第六步在UnityPlayerActivity 中 写一个 ReturnAPP方法 unity点击返回退出当前unity界面返回app主界面

/*

Android 退出App

 */

public void ReturnAPP(){

    finish();

}

第七步app主项目引用unityLibrary库

在app底下build.gradle中dependencies添加

implementation project(path: ':unityLibrary')

在app底下AndroidManifest.xml   application中添加

tools:replace="android:theme"

解决合并AndroidManifest.xml文件AppTheme冲突问题

在app底下strings.xml文件中添加

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

解决打开unity界面找不到资源文件的问题

在app底下 build.gradle 中设置支持的SO库架构 解决unityLibrary库 .so文件兼容问题

       ndk {

         abiFilters 'armeabi-v7a'

        }

第八步 跳转到unity界面

Intent intent = new Intent(MainActivity.this, UnityPlayerActivity.class);

startActivity(intent);

Android 与unity交互

Android发送信息给unity ,前两个参数unity定义,最后一个参数是要发送给unity的内容,内容只能是string类型

UnityPlayer.UnitySendMessage("MainCanvas","OpenAblbumCallBack","要发送的内容");

unity获取Android的信息   例如下面的方法,unity调用Android的方法,返回Android界面

public void ReturnAPP(){
    try {
        Class<?> aClass = Class.forName("com.example.rainbow.ui.activity.LoginActivity");
        startActivity(new Intent(this, aClass).putExtra("unity","unity3d"));
        finish();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值