Unity 2019.3及之后的版本将添加支持,可以将Unity作为原生Android和iOS应用控制的库,以便轻松加入AR和其它Unity功能。
这意味着开发者可以将Unity所能实现的增强现实AR、3D/2D实时渲染、2D迷你游戏等功能,直接添加到自己的原生移动应用。
直接上代码 Use Unity as Library
限制
- 作为库使用的Unity仅支持全屏渲染,不支持在屏幕的一部分进行渲染。
- 不支持加载多个Unity运行时实例。
- 开发者需要调整第三方插件,包括原生插件和托管插件,从而让它们正常工作。
集成要求
- Xcode 9.4以上版本
- Unity 2019.3.a2以上版本
集成步骤
1.下载示例工程
- 克隆或下载 Demo 这包含
- UnityProject-这是Unity示例工程,其中包含了几个简单的交互,我们要将他集成进原生工程。Assets/Plugins/iOS 中的文件,用于Unity与原生应用进行通信
- NativeiOSApp-这是简单的iOS原生应用,我们要在其中集成Unity项目。使用UnityFrameworkLoad()加载Unity引擎
2.导出Unity为Xcode项目
无需特别设置,正常生成Xcode项目
- 从Unity编辑器中打开UnityProject
- 删除或更新广告软件包至v3.*(2.0.8版本与作为库的Unity不兼容)(Menu/Window/Package Manager)
- 选择并切换到平台iOS(Menu/File/Builds Settings)
- 点击Build,选择导出文件夹UnityProject/Build,点击构建
3.设置Xcode workspace
使用Xcode workspace将原生项目和导出的项目集成到一起
- 新建Untitled.workspace保存到根目录下 (File/New/Workspace)
- 点击左下角的加号添加NativeiOSApp.xcodeproj和第二步生成的Unity-iPhone.xcodeproj(File / Add Files to "Untitled")
4.添加UnityFramework.framework
这个步骤把Unity的工程已framework的形式集成进NativeiOSApp,不需要改变NativeiOSApp的结构
- 在NativeiOSApp中选择NativeiOSApp target
- 在Build Phases/ Embedded Binaries栏目中点击+
- 选择Unity-iPhone/Products/UnityFramework.framework
- 在Build Phases/Linked Frameworks and Libraries中移除UnityFramework.framework
5.暴露NativeCallProxy.h
这个文件是Unity和原生项目接口的定义
- 选择Unity-iPhone / Libraries / Plugins / iOS / NativeCallProxy.h
- 在Inspector/Target Membership中选择UnityFramework并设置为Public
6.暴露Data文件夹
默认Data文件是属于Unity-iPhone target,我们要将他暴露给framework
- 选择Unity-iPhone/Data文件夹
- 在Inspector/Target Membership中选择UnityFramework
如果顺利,现在就可以成功的运行NativeiOSApp了
Swift集成
原生Swift集成过程跟OC的一样,只不过NativeCallProxy的实现需要桥接文件。在桥接文件中引入
#import <UnityFramework/NativeCallProxy.h>
我新建了一个UnitySwiftMix.workspace Demo演示如何在Swift中集成,并封装了Unity Framework的接口,同时这个工程也集成了Pod
详情请点击 Use Unity as Library