在 Swift 项目中集成 Unity

zzh*_*ads 6 unity-game-engine ios swift

好吧,我已经看过并尝试了从类似问题“如何将 Unity iOS 代码集成到 Swift 项目”中引用的大部分教程。但是我所有的尝试都因链接器错误“架构 arm_64 没有这样的符号”或“架构 x86_64 没有这样的符号”而失败。我在 Unity 端尝试了不同的构建选项,但没有成功。所有这些教程/文章的共同点是:所有这些都过时了,我发现的最新版本的 Unity 文章是 2018.2.2f1,我的 Unity 版本是 2018.2.20f1。那么,有人知道如何将 Unity 2018.2.20+ iOS 构建的代码集成到 Swift 4.2 (XCode 10) 项目中吗?任何帮助将不胜感激。

Pra*_*iya 5

这是我在我的 swift 项目中集成 unity 的方式。

  1. 创建新的 Xcode 项目(使用 swift)

  2. (创建桥接头步骤)创建新类 File -> New -> Cocoa touch class 并选择语言目标 C 它会要求创建桥接头选择创建

  3. 转到https://github.com/jiulongw/swift-unity并下载 zip 文件

  4. 打开下载的文件并解压。转到 Xcode 文件夹 -> DemoApp-> 您会发现Unity 文件夹复制粘贴到您的项目中(如果您拖放它,请确保选中在目的地复制的复选框)

  5. 并排打开您的新 Xcode 项目和自动生成的统一项目,以便您可以轻松复制粘贴

  6. Classes Folder从 unity Xcode 项目复制到您的 Xcode 项目到第 4 步的unity Folder

  7. 库文件夹 从统一 Xcode 项目复制到您的 Xcode 项目到步骤 4的统一文件夹

  8. 数据文件夹从统一 Xcode 项目复制到您的 Xcode 项目到步骤 4的统一文件夹

  9. 重要转到 Xcode 项目点击左侧的项目名称将有两个选项Project 和 target。 在中心主窗口中选择项目,您可以看到配置展开它并针对您的项目名称从下拉淹没中选择Unity

  10. 转到 您在步骤中复制的文件夹并删除main.mm文件或注释所有内容

  11. 转到您在步骤 3 中下载的文件夹 将所有代码复制AppDelegate.swift到您的AppDelegate.swift文件中

  12. 在您的 Xcode 项目中搜索YourProjectFileName-Bridging-Header 并复制粘贴

    #ifndef BRIDGING_HEADER #define BRIDGING_HEADER

    #import <UIKit/UIKit.h> #import "UnityUtils.h" #import "UnityAppController.h" #import "UnityInterface.h"

    #endif /* BRIDGING_HEADER */

  13. LaunchScreen-iPad.xibLaunchScreen-iPhone.xib复制粘贴到您的项目中并删除LaunchScreen.storyboard

  14. 编译它 :] 它应该编译成功(不是在我的情况下我得到错误,即 DeviceSettings.mm 缺少 return 语句,所以我只是添加了 return deviceUnknown; 在 } 之前)

  15. 您可以查看第 3 步下载的视图 controller.swift 文件,了解如何在屏幕中显示统一视图

注意:集成 unity 后,您将无法在模拟器中运行,因此您必须在真机中运行。最好在同一台机器上使用 unity 和 xcode。有时所有框架只获得文件夹的引用,所以在不同的机器上你可能会遇到这个问题

最后你的项目应该看起来像

在此处输入图片说明

希望它有帮助。

如果您认为有帮助,请不要忘记点赞 :)