Halaman ini menjelaskan bagaimana untuk mengintegrasikan Perpustakaan Ketertiban Unity ke aplikasi asli iOS dengan Unity sebagai fitur Perpustakaan.
Anda dapat menggunakan fitur ini untuk menyertakan fitur berkekuatan Unity, seperti 3D / 2D Real-Time Rendering, AR Experience, interaksi model 3D, atau 2D mini-games, dalam aplikasi asli Anda. Perpustakaan Runtime Unity mengekspos kontrol untuk mengelola kapan dan bagaimana memuat, mengaktifkan, dan membongkar konten dalam aplikasi asli Anda.
Untuk menggunakan Unity sebagai Perpustakaan untuk iOS, pertama membangun proyek Xcode Anda seperti biasa dari Unity (untuk informasi lebih lanjut, lihat Membangun pengaturan untuk iOS).
Setiap Unity Login Proyek Xcode memiliki Struktur berikut:
Untuk mengintegrasikan Unity ke proyek Xcode lain, Anda perlu menggabungkan proyek Xcode (yang asli dan satu Unity menghasilkan) ke dalam ruang kerja Xcode tunggal, dan tambahkan file UnityFramework.framework ke bagian Embedded Binaries dari target Application untuk proyek Xcode asli. Setelah Anda melakukan ini, Anda dapat menggunakan kelas UnityFramework
untuk mengontrol runtime Unity.
repository ini berisi proyek contoh dan plug-in yang menunjukkan cara mengintegrasikan Unity ke proyek Xcode, bersama dengan dokumentasi lebih lanjut.
Anda dapat mengontrol runtime Unity melalui contoh kelas UnityFramework
Objective-C, yang merupakan kelas utama dari UnityFramework.framework:
Method | Description |
---|---|
+ (UnityFramework*)getInstance; |
Metode kelas tunggal yang mengembalikan instance ke UnityFramework . |
- (UnityAppController*)appController; |
Mengembalikan subclass UnityAppController . Ini adalah kelas Unity akar di sisi asli, dan dapat mengakses objek terkait tampilan aplikasi, seperti UIApplicationDelegate , UIView , UIViewControllers , atau CADisplayLink .DisplayConnection . |
- (void)setDataBundleId:(const char*)bundleId; |
Mengatur Bundel di mana runtime Unity harus mencari folder Data. Untuk informasi lebih lanjut, lihat dokumentasi pada Data folder. Hubungi metode ini sebelum memanggil runUIApplicationMainWithArgc atau runEmbeddedWithArgc . |
- (void)runUIApplicationMainWithArgc:(int)argc argv:(char*[])argv; |
Cara default untuk menjalankan Unity dari metode utama di mana tidak ada pandangan lain. |
- (void)runEmbeddedWithArgc:(int)argc argv:(char*[])argv appLaunchOpts:(NSDictionary*)appLaunchOpts; |
Hubungi metode ini ketika Anda perlu menjalankan Unity ketika Pandangan lain ada. |
- (void)unloadApplication; |
Hubungi ini untuk membongkar Unity dan menerima callback ke UnityFrameworkListener setelah pembongkaran selesai. Unity akan melepaskan sebagian besar memori itu menempati, tetapi tidak semua itu. Anda akan dapat menjalankan Unity lagi. |
- (void)registerFrameworkListener:(id<UnityFrameworkListener>)obj; |
Daftarkan objek pendengar yang menerima penelepon acara terkait lifecycle UnityFramework. |
- (void)unregisterFrameworkListener:(id<UnityFrameworkListener>)obj; |
Unregister objek pendengar. |
- (void)showUnityWindow; |
Panggilan metode ini sementara tampilan non-Unity ditampilkan juga menunjukkan Tampilan Unity yang sudah berjalan. |
- (void)pause:(bool)pause; |
Pause Unity. |
- (void)setExecuteHeader:(const MachHeader*)header; |
Anda harus memanggil ini sebelum menjalankan Unity untuk CrashReporter untuk bekerja dengan benar. |
- (void)sendMessageToGOWithName:(const char*)goName functionName:(const char*)name message:(const char*)msg; |
Metode ini adalah proxy untuk UnitySendMessage. Ini menemukan objek permainan dengan nama dan fungsi panggilanName dengan parameter pesan tali tunggal. |
(void)quitApplication:(int)exitCode; |
Hubungi ini untuk membongkar Unity sepenuhnya dan menerima panggilan ke UnityFrameworkListener ketika Unity berhenti. Unity akan melepaskan semua memori.Note: Anda tidak akan dapat menjalankan Unity lagi dalam proses yang sama setelah panggilan ini. Anda dapat mengatur quitHandler pada AppController untuk menimpa pembunuh proses default. |
Unity tidak mengontrol siklus hidup runtime, sehingga Unity sebagai Perpustakaan mungkin tidak bekerja untuk semua kasus penggunaan yang mungkin. Batasan yang diketahui termasuk: