Unity和iOS之間的橋接

Unity和iOS之間的橋接
為了在unity3d中使用插件,必須做兩件事形导。

  • 用基于C的語言編寫函數并將其編譯為庫
  • 創(chuàng)建一個C#腳本來調用庫中的函數

要創(chuàng)建iOS插件,必須遵循五個步驟

  1. 創(chuàng)建一個新的unity3d項目
  2. 在Assets文件夾的Plugins文件夾中創(chuàng)建iOS文件夾
  3. 將iOS 文件分別放入其文件夾
  4. 編寫C包裝程序代碼以將本機API公開給C#
  5. 點擊“Assets - Export Package”菜單,將插件導出為unity3d包

橋接文件可以單獨創(chuàng)建一個文件夾處理,也可以直接放在對象的橋接平臺中創(chuàng)建

Assets
└── Plugins
    ├─  Bridge
    └── iOS
        ├── UBaseAds.h
        ├── UBaseAds.mm
        ├── ......

iOS模塊
在iOS中我們有一個UBaseAds.h 的 和 一個UBaseAds.mm文件环鲤,這里的.mm文件已經通過轉義成C++
代碼,通過C語言去調用OC的方法實現

#import <Foundation/Foundation.h>
#import <ScorerAdManager.h>
#import "UBaseAds.h"

#ifdef __cplusplus
extern "C"
{
#endif
    
static ScorerAdManager *s_bbase_ad = NULL;
UIViewController *UnityGetGLViewController();

void ads_create() {
    if (s_bbase_ad == NULL) {
        s_bbase_ad = [ScorerAdManager shareInstance];
    }
}
#ifdef __cplusplus
}
#endif

在這個.mm 文件中公開了C語言函數 ads_create()憎兽,然后冷离,如何在C#腳本中調用C函數?

using UnityEngine;
using System;
using System.Collections;
using System.Runtime.InteropServices;
using AOT;
namespace Ubase
{
#if UNITY_IOS && !UNITY_EDITOR
     [DllImport("__Internal")]
     private static extern void ads_create();
     public Ads() {
         ads_create();
        }
#endif
}

宏UNITY_IPHONE意味著這些代碼僅在iOS系統(tǒng)中生效纯命,[DllImport("__Internal")]意味著靜態(tài)鏈接C包裝器代碼西剥。
然后,創(chuàng)建Ads()方法亿汞,這是其他C#腳本可以使用的真實接口瞭空。

額外補充:
如果我的iOS庫依賴于其他庫或框架,我該怎么辦疗我?
在unity3d項目中咆畏,導出到iOS將生成一個Xcode項目,然后您可以在其中添加依賴項吴裤。

導出為xcode的目錄解析

Classes文件夾:

  Unity Runtime和ObjectC代碼

  main.mm和AppController.mm:應用程序入口點

  iPhone_Profiler.h:定義了啟用內部分析器(Internal Profiler)的編譯器條件句

Libraries文件夾:

  已翻譯成ARM匯編程序的.NET程序集

  libiPhone-lib.a:Unity Runtime靜態(tài)庫

  RegisterMonoModules.cpp:綁定了Unity本地代碼與.NET

Info.plist:屬性列表

  由Unity的PlayerSettings管理旧找,不應修改此文件。

Products文件夾:

  生成執(zhí)行文件所在目錄

Frameworks文件夾:

  外部庫

PostProcessBuildAttribute
將此屬性添加到在構建播放器后(build player)立即獲取通知的方法麦牺。
PostProcessBuildAttribute可以選擇從0開始在回調中提供順序索引钮蛛。如果您有多個PostProcessBuildAttribute回調,并且希望按特定順序調用它們剖膳,則此方法很有用魏颓。回調從零開始按順序調用吱晒。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末甸饱,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子枕荞,更是在濱河造成了極大的恐慌柜候,老刑警劉巖搞动,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異渣刷,居然都是意外死亡鹦肿,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門辅柴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來箩溃,“玉大人,你說我怎么就攤上這事碌嘀』林迹” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵股冗,是天一觀的道長霹陡。 經常有香客問我,道長止状,這世上最難降的妖魔是什么烹棉? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮怯疤,結果婚禮上浆洗,老公的妹妹穿的比我還像新娘。我一直安慰自己集峦,他們只是感情好伏社,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著塔淤,像睡著了一般摘昌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凯沪,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天第焰,我揣著相機與錄音买优,去河邊找鬼妨马。 笑死,一個胖子當著我的面吹牛杀赢,可吹牛的內容都是我干的烘跺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼脂崔,長吁一口氣:“原來是場噩夢啊……” “哼滤淳!你這毒婦竟也來了?” 一聲冷哼從身側響起砌左,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤脖咐,失蹤者是張志新(化名)和其女友劉穎铺敌,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體屁擅,經...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡偿凭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了派歌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弯囊。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖胶果,靈堂內的尸體忽然破棺而出匾嘱,到底是詐尸還是另有隱情,我是刑警寧澤早抠,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布霎烙,位于F島的核電站,受9級特大地震影響蕊连,放射性物質發(fā)生泄漏吼过。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一咪奖、第九天 我趴在偏房一處隱蔽的房頂上張望盗忱。 院中可真熱鬧,春花似錦羊赵、人聲如沸趟佃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闲昭。三九已至,卻和暖如春靡挥,著一層夾襖步出監(jiān)牢的瞬間序矩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工跋破, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留簸淀,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓毒返,卻偏偏與公主長得像租幕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拧簸,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內容

  • 本文原創(chuàng)版權歸 博客園吳秦所有劲绪,此處純粹技術收藏,如有再轉,敬請于顯示位置標明原創(chuàng)作者及出處贾富,以示尊重G妇臁! 作者:...
    Magic_Dong閱讀 4,566評論 0 7
  • unity3d是一個跨平臺的應用非常廣泛的3d引擎颤枪,本文記錄的是自己將其應用到iOS平臺時遇到的一些問題和解決辦法...
    油燜微風閱讀 6,893評論 3 7
  • 文/中心點 從我認識那天他算起姥芥,這是我第一次看見他哭,雖然他已經有八十多歲了汇鞭,但這次凉唐,他哭得卻像個找不到媽媽的孩子...
    頭發(fā)濃密小寶貝閱讀 299評論 2 4
  • 從前有座山,山上有座廟霍骄,廟里有個老和尚和小和尚台囱,老和尚對小和尚說,從前有座山读整,哈哈哈哈哈哈哈 從前有一個公主簿训,她說...
    維克多_d273閱讀 282評論 0 1
  • 哈嘍大家好我是駱長珊,今天是2018年1月26日米间,今天是我每天一篇文章的第64篇强品。 本篇要點: 一:說明診斷首先要...
    駱長珊閱讀 203評論 0 0