

Unity 工程导入 Android Studio 的关键步骤
source link: http://pjhubs.com/2020/12/19/unity01/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

优秀的人遵守规则,顶尖的人创造规则
Unity 工程导入 Android Studio 的关键步骤
最近开始学习 AS 和 Unity 相关的工具链,去实现一些自己的想法。此篇文章意在修正目前网络上错误或滞后的步骤,减少痛苦。
Unity
Unity 官方推荐使用 Unity Hub 进行管理 Unity 版本,最开始我也不明白怎么写个游戏还需要处理多个不同版本的引擎呢?后来在实际操作中才发现,在应对不同的游戏开发需求时,我们需要输出的目标平台产物也不一样,而且有些 Unity 版本在不同平台上可能还会出现不同的差异(未验证),而且在我学习的这段时间中,最开始我的学习版本是 2019.3.8f1
这个版本,而到了现在我居然已经创建出了三个不同 Unity 版本的工程,而通过 Unity Hub 就可以较为便捷的切换成我们最终想要的 Unity 版本。
在我目前的配置中,因为我仅输出移动平台,也就是 iOS 和 Android 两个平台的目标产物,因此在安装 Unity 版本时,只选择了这两个平台,如果你有其它需要的话,可以新建多个不同的 Unity 版本来做隔离。
当我们想要输出目标平台对应产物时,Unity 默认是桌面平台,如果想要输出移动端平台的产物需要我们在运行 Unity 工程时选择「目标平台」为即将要输出产物的平台。
当进入我们已经写好的游戏后,可以在 File -> Build Settings 中做目标产物的属性配置,如包名、系统版本号等。
如果我们想要生成对应移动端平台的架构包时,需要注意判断下自己要输出的产物到底是什么架构,否则后续导入 AS 中后你会得到缺失 libmain.so
的报错。
当这些关键性信息都确认后,我们可以通过 Export
来导出。稍微等待一段时间后,我们得到的产物包含一个可运行的 module 和一个核心游戏逻辑的 Module。
Android Studio
准备好一个已有的 AS 工程,通过 File -> New -> Import Module 来导入之前通过 Unity 输出的产物。
这里的 launcher
没必要导入,这是 Unity 给我们生成的一个 demo app,可以直接通过 AS 导入整个工程,但因为我们已经有一个存在的 AS 工程了,所以可以把 launcher
的 import
勾取消。
此时我们的 AS 工程目录中多了一个 unityLibrary
目录(如果你没有修改过名字的话),此时我们需要继续把 unityLibrary
给 app 添加依赖。
在下图所示的依赖添加面板中点击 +
你会看到之前我们所添加的 unityLibrary
,apply 即可,但因为我之前已经添加过,所以并没有在面板中看到。
修改 unityLibrary
中的 AndroidManifest.xml
文件,注释掉其中 <intent-filter>
标签,否则当我们的 app 启动后将直接运行 unity 游戏主体而不是我们的 app 了。
此时,我们已经完成了 unity 工程导入 AS 项目中的操作了,并且也可以在代码中引用到 unity 游戏主体类。
运行工程!
app 完美的 build 通过且 install 到我们的设备上了,但当我们点击跳转到对应的 item 进入 unity 主体时却得到了 source ID 找不到问题。
1
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.UnityActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x0
一番搜索,需要在 string.xml 中添加字符映射。
1
<string name="game_view_content_description">Game view</string>
写这篇文章的时候,我是第三次把 Unity 工程导入 AS 中,第一次因为遇到的问题太多,或者说没有很多的引导步骤,导致毫无头绪,第二次换了个心态,折腾了好久后发现终于搞定,等到这一次时,基本上就轻车熟路了,所有遇到的问题都有头绪。
总而言之,官方都没有提供一个很好的指南去教授给我们这些初学者,而这些事情在高阶开发者面前又先得如此轻易,再加上目前网络上相关问题的解答实在是版本太老,有些解决思路界面上都没有这个入口了。
(为什么这么简单的东西,你们抄来抄去还是没解决是怎么回事。。。
Recommend
-
17
[本文结构] 最近因为项目需要,要研究Android系统中应用安装的详细过程。在这种场景下,最好的办法就是Read the Fucking Source Code。之前都是在线看,这次因为看的内容比...
-
7
因为Android官方并没有把所有java层的API暴露给我们,只把希望我们看到的部分封装成Android Sdk供我们开发用,如果我们想深入了解一些东西只能通过从AOSP下载源码了。 下载Android源码 一般步骤如下: Installing Repo
-
7
创建兼容Android Studio和eclipse的AS工程
-
6
使用Android Studio 3.1.2导入以前的项目遇到一些坑,借此机会把相关处理方法分享出来。 下面以导入Android Studio2.3.3项目为例: 在此之前先建议你用Android Studio 3.1.2创建一个新的项目,看看有哪些变化,这对你很有帮助。 ...
-
16
28 February 2020 / 开发笔记 Unity导出Android Studio工程时如何避免工程覆盖 有时候,我们需要用Unity导出Android Studio工程,然后进行定制化,...
-
6
Android Studio解决导入项目非常慢的问题 – Android开发中文站你的位置:Android开发中文站 > Android开发 >
-
7
...
-
6
如何通过5个简单的步骤将Tumblr导入WordPress WPJIAN •2019年12月4日 上午10:09• Wordpress SEO 想要将Tumbl...
-
8
Android Studio 导入 AOSP 源码 发表于...
-
11
第一章 A/D转换的基本工作原理将时间上连续变化的模拟量转化为脉冲有无的数字量,这一过程就叫做数字化,实现数字化的关键设备是ADC。ADC:数模转换器,将时间和幅值连续的模拟量转化为时间和幅值离散的数字量,A/D转换一般要经过采样、保...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK