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