clang错误:本机中的Unity链接器命令失败

时间:2019-03-13 07:04:53

标签: c# swift xcode unity3d

我的项目是Native集成中的Unity,遇到了clang错误的问题:构建失败的引用映像。我已经通过堆栈溢出中的其他来源来清除clang错误。我试图删除main.mm文件,然后构建成功,但调用统一屏幕时应用程序将崩溃。因此,我必须保留AppDelgate和main.mm这两个文件。无法解决此问题。如果有人可以的话。.enter image description here

1 个答案:

答案 0 :(得分:0)

根据您的问题,希望它在快速的本机集成中保持统一。

注意:此解决方案仅适用于以下情况:Native iOS中的Unity

从屏幕截图中可以看到,您正在Xcode中使用2个主要文件。有2个选项可解决此问题。

选项1),您可以将两个文件都保留在构建阶段->编译源文件中,但是在AppDelegate中,命令@UIApplicationMain

import UIKit
//@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate {
.......................................}

这将成功建立并且在初始阶段会出现统一视图。

选项2):如果您想使用按钮显示统一视图,请从 Build Phases->编译源代码中删除main.mm文件,因此应用不会使用“共享的窗口appDelegate”在统一视图中崩溃,然后在您的AppDelegate中尝试此代码(不使用@UIApplicationMain命令)

 func unityWindow() -> UIWindow? {
        return UnityGetMainWindow()
    }

    func showUnityWindow() {
        unityWindow()?.makeKeyAndVisible()
    }

    func hideUnityWindow() {
        window!.makeKeyAndVisible()
    }

然后,在您的View Controller中

 private var isShowUnityWindow = false
     override func viewDidLoad()
        {
            super.viewDidLoad()
           isShowUnityWindow = false

        }
         @IBAction func startUnityandHide(_ sender: UIButton)
            {

                isShowUnityWindow = !isShowUnityWindow
                var appDelegate = UIApplication.shared.delegate as? AppDelegate

                if isShowUnityWindow {
                    appDelegate?.unityWindow()!.frame = CGRect(x: 40, y: 200, width: 300, height: 300)
                    appDelegate?.showUnityWindow()
                } else {
                    appDelegate?.hideUnityWindow()
                }
            }