【发布时间】:2018-12-21 15:47:57
【问题描述】:
嗯,我已经看过并尝试了从类似问题“如何将 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) 项目中吗? 任何帮助将不胜感激。
【问题讨论】:
-
您可以创建 Unity3D 应用程序,将其构建到 iOS 项目中,并且您可以根据需要将新的 ViewController 推送到根目录:
let viewController = UIApplication.shared.keyWindow!.rootViewController as! YourViewController。不要忘记从 Unity3D 关闭/隐藏/暂停未使用的控制器。您可以通过 PlayerPrefs = UserDefaults 接口与 Unity3D 代码进行通信。我已经用同样的方法做了几个项目。 -
你能分享一些代码示例吗?
-
您熟悉 PlayerPrefs 吗?例如,当(例如,点击某个按钮)您想从 Xcode 项目(例如,某个场景)加载新的 ViewController 时,在 Unity3D 中将“GoToXcode”键设置为 PlayerPrefs。在 Xcode 类 AppDelegate 中监听 UserDefaults:
let isChange = UserDefaults.standard.string(forKey: “GoToXcode”) ?? false。您可以在 Timer 的块中收听它。if isChange { let viewController = UIApplication.shared.keyWindow!.rootViewController as! YourViewController}. -
我想我明白了。但是您将 Unity 部分视为项目的“主要”(或控制器)部分,在我的情况下正好相反,我有一个大的 Swift 项目,我只想在一种情况下显示用户 Unity 3D 场景,所以我想要能力展示以 UnityViewController 为例。
-
我认为,有两种可能:您应该控制 Xcode 和 Unity3D AppDelegates。 Unity3D AppDelegate 很复杂,Unity3D 和自定义方法都有很多对象。祝你好运。