android|android studio集成unity导出工程的实现

目录

  • 环境
  • 新建android 工程
  • 导出 unity 工程
  • android c# 互相调用
最近需要将 unity 导出工程 嵌入到 android 工程

环境 1,android studio 2021.1.1.1
2, unity 2021.2.4

新建android 工程 1,
android|android studio集成unity导出工程的实现
文章图片

2,
android|android studio集成unity导出工程的实现
文章图片


导出 unity 工程 1,
android|android studio集成unity导出工程的实现
文章图片

2,导出结果 unityLibrary 就是我们想要的结果 launcher 暂时用不上
android|android studio集成unity导出工程的实现
文章图片

3, 在android 工程中
android|android studio集成unity导出工程的实现
文章图片

4,选择unitylibarary 目录
android|android studio集成unity导出工程的实现
文章图片

5,
android|android studio集成unity导出工程的实现
文章图片

6,更改 app gradle配置文件:
implementation project(path:':unityLibrary') implementation fileTree(dir: project(':unityLibrary').getProjectDir().toString()+('\\libs'), include: ['*.jar', '*.aar'])ndk {abiFilters 'armeabi-v7a', 'arm64-v8a'}

android|android studio集成unity导出工程的实现
文章图片


7,删除manifest配置
android|android studio集成unity导出工程的实现
文章图片

8, 在 gradle.property 添加配置 不加这个会报错
unityStreamingAssets=.unity3d, google-services-desktop.json, google-services.json, GoogleService-Info.plist

android|android studio集成unity导出工程的实现
文章图片

9,添加 value值 不加也会挂掉
android|android studio集成unity导出工程的实现
文章图片

Game view

10,调用
android|android studio集成unity导出工程的实现
文章图片

Button myBtn=findViewById(R.id.button); myBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this,UnityPlayerActivity.class); startActivity(intent); }});


android c# 互相调用 android 调用 c#
package com.xingame.unitycallandroid; import android.os.Bundle; import android.widget.Toast; import com.unity3d.player.UnityPlayer; public class MainActivity extends UnityPlayerActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); }//unity调用Androidpublic void UnityCallAndroid () {Toast.makeText(this,"unity调用android成功", Toast.LENGTH_LONG).show(); AndroidCallUnity(); }//android调用unitypublic void AndroidCallUnity () {//第1个参数为Unity场景中用于接收android消息的对象名称//第2个参数为对象上的脚本的一个成员方法名称(脚本名称不限制)//第3个参数为unity方法的参数UnityPlayer.UnitySendMessage("receiveObj", "UnityMethod", "This is args."); }}

c# 调用 java
private void OnBtnClickHandler(){using (jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")){using (jo = jc.GetStatic("currentActivity")){jo.Call("UnityCallAndroid"); }}}

【android|android studio集成unity导出工程的实现】到此这篇关于android studio集成unity导出工程的实现的文章就介绍到这了,更多相关android studio unity导出工程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读