将Unity Android Studio项目转换为动态功能,而无需从一开始就将其资产复制到基础项目中
通常,用户必须将其转换为库才能将其嵌入到另一个应用程序中。但是,现在我想将其转换为动态特性 我已经在Unity项目的清单中列出了:将Unity Android Studio项目转换为动态功能,而无需从一开始就将其资产复制到基础项目中,android,unity3d,dynamic-feature,Android,Unity3d,Dynamic Feature,通常,用户必须将其转换为库才能将其嵌入到另一个应用程序中。但是,现在我想将其转换为动态特性 我已经在Unity项目的清单中列出了: <dist:module dist:onDemand="true" dist:title="@string/title_gamejam_as_dynamic_feature"> <dist:fusing dist:include="true" /> </dist:module> 编辑2: 进一步检查后,我发现
<dist:module
dist:onDemand="true"
dist:title="@string/title_gamejam_as_dynamic_feature">
<dist:fusing dist:include="true" />
</dist:module>
编辑2:
进一步检查后,我发现mscorlib.dll
不在mono
.so文件中,而是在Assets文件夹中。将Unity项目的assets/bin/Data/…
复制到基础项目(完全相同的路径)中会起作用。。。但这恰恰违背了模块化的观点
Unity项目是否有任何方法可以使用它带来的资产,而不必在部署之前将其复制到基本APK中?Unity正在Base.APK中搜索您的
.dll
,这不是您想要的,因为您使用的是动态功能
我通过将我的UnityPlayerPractivity的getPackageCodePath()
覆盖到如下内容来解决这个问题:
override fun getPackageCodePath(): String {
return super.getPackageCodePath().replace("base.apk", "split_unity_module.apk")
}
PS:我的模块名为
unity\u module
,因此.apk的名称类似于split{{{your\u module\u name}}。apk
你能解决这个问题吗?
override fun getPackageCodePath(): String {
return super.getPackageCodePath().replace("base.apk", "split_unity_module.apk")
}