如何将Unity游戏嵌入iOS本机Swift应用程序

嗨! 对于一个或我们将来的B2B合同,我们必须将Unity游戏集成到iOS本机Swift应用程序中。 我们为实现有效而没有错误的努力已经很多天了。

我们希望通过这个简单的教程来分享我们的知识和过程。


本教程的灵感来自其他人的工作:

将Unity 5与Xcode 7集成在本地iOS应用中

几个月前,我发表了一篇博客文章,介绍如何在本地iOS应用程序中集成Unity3D。 本教程

书呆子

久隆县

swift-unity –将Unity(2017.1+)场景集成到iOS(Swift 4.0,Xcode 9+)项目中的示例代码。

github.com

keyv / iOSUnityVuforiaGuide

iOSUnityVuforiaGuide –将Unity + Vuforia集成到本机iOS应用程序中

github.com

jack_loverde / Unity 5 Vuforia 6和iOS本机集成

这是带有代码的Unity 5.x,Vuforia 6.x和iOS 8.4至10.x子类化示例的存储库。

bitbucket.org


这是所有资源的链接: 单击此处

以及指向其特定部分的链接:

  • 附加:包含遵循教程的基本文件的文件夹:
    点击这里
  • TutorialImages:本教程中使用的所有图像: 点击这里
  • UnityExport: Unity iOS构建导出文件夹: 单击此处
  • UnityProject:本教程中使用的Unity项目: 单击此处
  • XcodeProject:可以用作您自己的项目的模板的整个Xcode项目: 单击此处
    (如果在构建“类”“库”“数据”文件夹的“删除”“删除引用”时遇到错误,请继续执行11. 12.和13.步骤。)

  • 本教程的灵感来自王久隆的工作,您可以在这里查看他的教程及其出色的自动化脚本https://github.com/jiulongw/swift-unity
  • 本教程是使用Unity 2017.4.0f1制作的,但它也适用于最新的2018.2.2f1版本。 但是,您必须在项目的“ Build Settings”中将 Mismatched return type”选项设置为“ Yes”
  • 请注意, Xcode不喜欢路径和项目名称中的空格 ,因此请避免使用它
  • 注意嵌入Unity可能会导致游戏问题 ,尤其是图形游戏
  • 当您对Unity项目进行更改并再次导出时,请确保替换“ Classes”“ Libraries”“ Data”文件夹,并检查项目设置中的“ Configurations”是否设置为“ Unity”
  • 当您在Xcode中错误时 ,命令
    “清洁” (产品/清洁) Command + Shift + K
    “清理构建文件夹” 命令+ Option + Shift + K
    可以帮助您在重新构建之前摆脱它
  • 如果你得到一个 生成时,Xcode中出现“找不到设备支持文件”错误 ,请下载此存储库https://github.com/iGhibli/iOS-DeviceSupport,然后在“ /Applications/Xcode.app/Contents/Developer/平台/
    iPhoneOS.platform / DeviceSupport”

1.打开Xcode并创建一个新的Swift项目或打开一个现有的项目

2.选择“ Single View App”,然后单击“ Next”

3.随心所欲命名项目并将语言设置为Swift

4.随时随地保存您的项目

5.打开您的Unity项目并切换到iOS平台

6.如果还没有文件夹,则创建一个“ Editor”文件夹,然后复制“ XcodePostBuild.cs”脚本,您可以在本教程开始时的“ Extra”文件夹中找到该脚本。 这是王九龙提供的剧本

7.打开脚本,并将“ XcodeProjectRoot”替换为刚创建的Xcode项目路径的路径。 您必须将路径放入包含“ .xcodeproj”文件的文件夹。 然后,用您的Xcode项目名称替换“ XcodeProjectName” ,显然

8.构建游戏并将其保存在您在其中创建Xcode项目的文件夹中

9.打开Xcode项目,并在“常规”选项卡中检查是否选择了有效的“团队” ,并验证您的“捆绑包标识符”是否正确

10.下载教程开始时提供的“ Extra”文件夹,并将“ Unity”文件夹从其中复制到Finder中的Xcode项目文件夹中。

11.现在将文件夹拖到Xcode树中,以选中“复制项目(如果需要)”“创建组”选项将其链接

12.将Unity导出文件夹中的“类”,“库”“数据”文件夹复制并粘贴到Xcode项目中并粘贴到先前创建的Unity文件夹中

13.现在将“ Classes”和“ Libraries”文件夹拖到Xcode树中,以将其与“如果需要复制项目”“创建组”选项选中的链接

14.然后,将“数据”文件夹拖到Xcode中,但仅使用“创建文件夹引用”选项

15.进入项目的“常规”选项卡,并设置“ Unity”配置文件

16.现在,您可以将“ AppDelegate.swift”,“ Main.storyboard”和“ ViewController.swift”文件完全替换为 Extra”文件夹中提供的文件,也可以将其内容与自己的文件合并

17.如果要替换它们,请在Xcode树中选择“ AppDelegate.swift”,“ Main.storyboard”和“ ViewController.swift” ,然后使用“移至垃圾桶”选项将其删除。

18.然后,拖动Xcode项目树的额外文件夹中提供的那3个文件,并复制它们,并选中 如果需要,复制项目”“创建组”选项

19.如果Xcode要求您配置桥接头,请选择“不创建”

这两个脚本也是王九龙提供的。

AppDelegate.swift

21.完成“ Main.storyboard”“ ViewController.swift”检查后者是否已链接到故事板的“ Class”变量中

22.为了避免“ LaunchScreen.storyboard”文件出现某些错误,请将其删除,然后在项目的“常规”选项卡中,将“ Main.storyboard”设置为“ Launch Screen File”。

23.现在已经完成了所有设置,您应该能够选择您的iOS设备并在其上构建Xcode项目

24.应用启动后,按“启动Unity”开始游戏,然后按“暂停Unity”暂停并隐藏它。 您可以再次按“启动Unity”以恢复它。