Unity-?ARKit-Plugin插件及樣例教程

轉(zhuǎn)自http://www.u3dc.com/archives/2790

這要從WWDC2017說起琴昆,概念有點多遥倦,我盡量精簡一些說明白碉考。

ARkit是什么挺身?

話說,蘋果在WWDC2017上發(fā)布的一套增強現(xiàn)實開發(fā)套件良蒸,然后IOS就成了世界上最大的AR平臺了伍玖,關(guān)鍵是實現(xiàn)的SLAM效果還是行業(yè)頂尖水準(zhǔn)的,也慶幸是IOS獨占串纺,不然讓那些第三方做AR SDK的團隊辛苦研究出來的SLAM就這樣被秒了,現(xiàn)在至少還可以拿支持多平臺說點什么榄笙〉或颍看過油管上有個小伙子測試ARkit,他在房間里放了一個3D物件巨朦,然后拿著手機在房間里轉(zhuǎn)了一大圈糊啡,那個3D物件巋然不動,還在原地呆著棚蓄,這定位效果真是~嘖嘖~

AR是什么梭依?

英文全稱:Augmented Reality,簡稱AR邪蛔,中文意思:增強現(xiàn)實扎狱。簡單點說,就是給已有的物體疊加顯示一些細(xì)節(jié)信息匠抗,最形象的就是龍珠里的史考特眼鏡污抬,一眼看穿你的戰(zhàn)斗力。目前在軍事矢腻、醫(yī)用射赛、商業(yè)運作均有重要應(yīng)用。

SLAM是什么竣灌?

全稱:simultaneous localization and mapping,中文意思:即時定位與地圖構(gòu)建及汉,最早于1988年由Smith屯烦、Self和Cheeseman提出,是計算機視覺研究領(lǐng)域的關(guān)鍵技術(shù)之一温眉,這兩年因為AR迅脐、MR概念的熱炒又一度進(jìn)入人們視線的熱度榜中豪嗽,簡單的說,這是一項讓虛擬的三維物體感知我們現(xiàn)實世界空間感的技術(shù)隐锭,比如我養(yǎng)了一直虛擬的小貓计贰,它能與我們現(xiàn)實的世界進(jìn)行交互,比如可以躲在我們的電腦桌下荞怒,或者跳到我們正在敲字的鍵盤上秧秉,細(xì)思極恐(可參考《電腦線圈》)。

Unity-ARKit-Plugin是什么荧嵌?

這是Unity官方在WWDC發(fā)布會當(dāng)天在bitbucket同步開源的插件型項目(Unreal也有對應(yīng)的項目砾淌,當(dāng)然今天先說這個)汪厨。插件的原理是把調(diào)用IOS原生的一些API功能進(jìn)行了中介封裝,這樣你就可以直接使用Unity推薦的C#進(jìn)行開發(fā)劫乱。

怎么用薄辅?

一般而言站楚,插件都是為了快速開發(fā)而整合的接口型模塊代碼搏嗡,一個陌生的插件到手上后,我們第一時間會先看它的測試場景樣例旧乞,這是熟悉新東西的捷徑磅氨,“Talk is cheap,show me the code."

當(dāng)然官方在項目的ReadMe文檔中也有詳細(xì)的說明(英文)延赌,我整理了一下叉橱,大意如下:

【配置需求】:

Unity版本需要5.6.1P1以上(補丁版本),IOS需要升級到最新的IOS11(現(xiàn)在問題還比較多掐松,不建議日常使用粪小,開發(fā)者自備開發(fā)機),Xcode也需要升級到beta 9(已包含ARkit)量没,最后還有個硬件需求:手機必須iPhone6s以上(A9以上CPU)突想,iPad必須是2017年款的。

插件中已經(jīng)包含了四個測試場景(最新版本袭灯,我fork了一份到我github上绑嘹,并同步了最新的代碼)。

插件的文件中姨丈,有兩個比較重要的代碼文件:ARSessionNative.mm和ARSessionNativeInterface.cs蟋恬,前者是Objective-C代碼,也是真正的ARkit SDK的接口代碼歼争,而后者則是膠水代碼沐绒,就是上面說的封裝原理,C#通過ARSessionNativeInterface.cs與IOS原生代碼進(jìn)行通訊乔遮。

接著介紹一些常用的API:

public void RunWithConfigAndOptions(ARKitWorldTackingSessionConfiguration config, UnityARSessionRunOption runOptions)

public void RunWithConfig(ARKitWorldTackingSessionConfiguration config)

public void Pause()

public List HitTest(ARPoint point, ARHitTestResultType types)

public ARTextureHandles GetARVideoTextureHandles()

public float GetARAmbientIntensity()

public int GetARTrackingQuality()

還有一些比較有用的委托(至于委托是什么蹋肮,我們上一篇已經(jīng)說過了,這里不贅述):

public delegate void ARFrameUpdate(UnityARCamera camera)

public delegate void ARAnchorAdded(ARPlaneAnchor anchorData)

public delegate void ARAnchorUpdated(ARPlaneAnchor anchorData)

public delegate void ARAnchorRemoved(ARPlaneAnchor anchorData)

public delegate void ARSessionFailed(string error)

在/Assets/Plugins/iOS/UnityARKit/NativeInterface/目錄下以AR開頭的.cs腳本所提供的API等價于原生ARkit的公有數(shù)據(jù)結(jié)構(gòu)巷蚪。

UnityARAnchorManager.cs這個腳本的用處是更新三維物件在追蹤時的錨點(錨就是定點濒翻,讓一個物體巋然不動的根本)啦膜,參閱GeneratePlanes.cs 這個腳本詳細(xì)了解具體的用法僧家。

UnityARBuildPostprocessor.cs是一個Editor腳本,打包IOS平臺時會調(diào)用八拱,核心的代碼如下,主要是做一些庫和文件添加操作:

string projPath = pathToBuiltProject + "/Unity-iPhone.xcodeproj/project.pbxproj";

其他一些實用的組件:

UnityARCameraManager.cs清蚀,這個組件得放到一個Gameobject上爹谭,這樣才能通過ARkit來控制引用的攝像頭诺凡。(這個其實和其他的AR SDK是很類似的)践惑,主要用于初始化ARkit嘶卧,更新ARkit的位置、旋轉(zhuǎn)穷娱、投射矩陣等信息运沦。

ARVideo.cs 這個組件需要掛載到攝像機上,設(shè)置對應(yīng)的材質(zhì)用于傳輸數(shù)據(jù)到后備緩沖區(qū)嫁盲。

官方的說明就是以上這些了烈掠,當(dāng)然這個插件還在不斷迭代更新中,后續(xù)還會有更多的feature瘾蛋,是不是意猶未盡矫限?那就自己手動Clone下來研究一下唄。

github鏈接:https://github.com/U3DC/Unity-ARKit-Plugin

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末取董,一起剝皮案震驚了整個濱河市无宿,隨后出現(xiàn)的幾起案子孽鸡,更是在濱河造成了極大的恐慌,老刑警劉巖豆胸,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堡妒,死亡現(xiàn)場離奇詭異,居然都是意外死亡搬泥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門尉尾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沙咏,“玉大人班套,你說我怎么就攤上這事≈ň拢” “怎么了理盆?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長衷快。 經(jīng)常有香客問我姨俩,道長,這世上最難降的妖魔是什么都伪? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任积担,我火速辦了婚禮猬仁,結(jié)果婚禮上湿刽,老公的妹妹穿的比我還像新娘。我一直安慰自己诈闺,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布刃滓。 她就那樣靜靜地躺著耸弄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砰诵。 梳的紋絲不亂的頭發(fā)上捌显,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天扶歪,我揣著相機與錄音,去河邊找鬼击罪。 笑死媳禁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的竣稽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼岛宦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起挽霉,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤侠坎,失蹤者是張志新(化名)和其女友劉穎裙盾,沒想到半個月后他嫡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庐完,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡假褪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年生音,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慕匠。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡域醇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锅铅,到底是詐尸還是另有隱情减宣,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布贼邓,位于F島的核電站塑径,受9級特大地震影響填具,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜灌旧,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一枢泰、第九天 我趴在偏房一處隱蔽的房頂上張望铝噩。 院中可真熱鬧,春花似錦毛甲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至爆存,卻和暖如春蝗砾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悼粮。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留霉翔,地道東北人苞笨。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像瀑凝,于是被迫代替她去往敵國和親序芦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容