Исходя из вашего вопроса, надеемся, что это единство в быстрой нативной интеграции.
ПРИМЕЧАНИЕ. Это решение предназначено только для случая: Unity в родной iOS
От вашегоСнимок экрана показывает, что вы используете 2 основных файла в Xcode.Есть 2 варианта, чтобы это исправить.
Опция 1) вы можете хранить оба файла в Этапы сборки -> Исходники компиляции , но в вашем AppDelegate введите команду@ UIApplicationMain
import UIKit
//@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
.......................................}
Это построение выполнено успешно, и на начальном этапе появляется представление единства.
Вариант 2) Если вы хотите показать представление единства с помощью кнопки, удалите свойФайл main.mm из Этапы сборки -> Компилировать исходники , поэтому приложение не будет аварийно завершать работу в режиме единства с помощью 'общего окна appDelegate' и пробует этот код в своем AppDelegate (uncommand @UIApplicationMain)
func unityWindow() -> UIWindow? {
return UnityGetMainWindow()
}
func showUnityWindow() {
unityWindow()?.makeKeyAndVisible()
}
func hideUnityWindow() {
window!.makeKeyAndVisible()
}
затем в вашем контроллере вида
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()
}
}