29 lines
979 B
Swift
29 lines
979 B
Swift
import Foundation
|
||
import UnityLibrary
|
||
|
||
// 用于加载Unity框架的辅助类
|
||
class UnityFrameworkLoader: NSObject {
|
||
// 加载Unity框架
|
||
func loadUnityFramework() -> UnityFramework? {
|
||
let bundlePath = Bundle.main.bundlePath
|
||
let frameworkPath = bundlePath + "/Frameworks/UnityFramework.framework"
|
||
|
||
let bundle = Bundle(path: frameworkPath)
|
||
if bundle?.isLoaded == false {
|
||
bundle?.load()
|
||
}
|
||
|
||
let frameworkClass = NSClassFromString("UnityFramework") as? UnityFramework.Type
|
||
let framework = frameworkClass?.getInstance()
|
||
|
||
if framework?.appController() == nil {
|
||
// Unity还未初始化,进行初始化
|
||
let machineHeader = UnsafeMutablePointer<MachHeader>.allocate(capacity: 1)
|
||
machineHeader.pointee = _mh_execute_header
|
||
|
||
framework?.setExecuteHeader(machineHeader)
|
||
}
|
||
|
||
return framework
|
||
}
|
||
} |