Unity as a Library×Swiftの記事はシリーズになっています。
記事を順番に読み進めると、Unity as a LibraryをSwiftで使えるようになります。
- Unity as a LibraryでXCFrameworkを生成する方法(Swift)
- Unity as a LibraryのXCFrameworkを生成するGitHub Actions
- UnityFrameworkが提供している各クラスの主要メソッド一覧(Objective-C) ←イマココ
- UnityFrameworkをSwiftで使う方法
- Unity as a LibraryでUnityからSwiftの処理を呼ぶ方法
はじめに
本記事は どすこい塾 Advent Calendar 2025 の16日目の記事です。
昨日も @uhooi で Unity as a LibraryのXCFrameworkを生成するGitHub Actions でした。
UnityFramework.framework が提供している各クラスの主要メソッドとプロパティを紹介します。
Objective-Cで実装されていますが、Swiftから呼び出せます。
環境
- OS:macOS Sequoia 15.6(24G84)
UnityFrameworkクラスが提供している主要メソッド一覧
UnityFramework クラスが提供している主要なメソッドを紹介します。
| メソッド | 説明 |
|---|---|
+ (UnityFramework*)getInstance; |
UnityFramework クラスのシングルトンのインスタンスを返す |
- (UnityAppController*)appController; |
UnityAppController クラスのインスタンスを返す。実行されていない場合は nil を返す |
- (void)setExecuteHeader:(const MachHeader*)header; |
ヘッダーをセットする |
- (void)registerFrameworkListener:(id<UnityFrameworkListener>)obj; |
UnityFrameworkListener を登録する |
- (void)unregisterFrameworkListener:(id<UnityFrameworkListener>)obj; |
UnityFrameworkListener の登録を解除する |
- (void)setDataBundleId:(const char*)bundleId; |
Unityランタイムが Data フォルダを探すためのバンドルIDをセットする |
- (void)runUIApplicationMainWithArgc:(int)argc argv:(char*[])argv; |
Unityを実行する(他のビューが存在しない場合) |
- (void)runEmbeddedWithArgc:(int)argc argv:(char*[])argv appLaunchOpts:(NSDictionary*)appLaunchOpts; |
Unityを実行する(他のビューが存在する場合) |
- (void)pause:(bool)pause; |
Unityを一時停止する |
- (void)unloadApplication; |
Unityをアンロード(終了)する。Unityを再実行できる |
- (void)quitApplication:(int)exitCode; |
Unityをクィット(完全にアンロード)する。Unityを再実行できない |
- (void)showUnityWindow; |
実行中のUnityウィンドウを表示する |
UnityAppControllerクラスが提供している主要プロパティ一覧
UnityAppController クラスが提供している主要なプロパティを紹介します。
| プロパティ | 説明 |
|---|---|
@property (retain, nonatomic) UIWindow* window; |
ウィンドウ。Unityビューを他のウィンドウで使う場合は isHidden を true にする |
@property (readonly, copy, nonatomic) UIView* rootView; |
ルートビュー。ビューをUnityウィンドウ以外のウィンドウで使う場合に呼ぶ |
UnityFrameworkListenerプロトコルが提供しているメソッド一覧
UnityFrameworkListener プロトコルが提供しているデリゲートメソッドを紹介します。
それぞれ後処理を実行する場合に中身を実装します。
| メソッド | 説明 |
|---|---|
- (void)unityDidUnload:(NSNotification*)notification; |
Unityのアンロード後に呼ばれる |
- (void)unityDidQuit:(NSNotification*)notification; |
Unityのクィット後に呼ばれる |
おわりに
これらのメソッドやプロパティが一通りわかると、iOSでUnityを実行できます。
以上 どすこい塾 Advent Calendar 2025 の16日目の記事でした。
明日も @uhooi です。