生活随笔
收集整理的這篇文章主要介紹了
UNITY3D与iOS交互解决方案
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原地址:http://bbs.18183.com/thread-456979-1-1.html
本帖最后由 啊,將進(jìn)酒 于 2014-2-27 11:17 編輯
“授人以魚,不如授人以漁”,以UNITY3D調(diào)用iOS版的91SDK為例,利用C# / C / OBJ-C?交互原理,本文將詳細(xì)介紹UNITY3D與iOS之間交互的解決方案。 ? 首先,打開XCODE新建一個(gè)空項(xiàng)目,參照91SDK開發(fā)文檔將91SDK引入并進(jìn)行環(huán)境配置。 配置完畢后創(chuàng)建一個(gè)名為“LsSdkConector”的OBJ-C CLASS文件。完畢后,當(dāng)前項(xiàng)目應(yīng)如圖: <ignore_js_op> ? LsSdkConector.h文件我們不用去改動(dòng)它。保持原樣即可。 <ignore_js_op> ? 接下來我們開始在LsSdkConector.m 文件中制作C接口 和 調(diào)用91SDK的iOS方法。 引入必要的頭文件后,我把該文件的代碼分為3個(gè)區(qū)域。 代碼A區(qū)域用來定義C接口必須要實(shí)現(xiàn)的API。 <ignore_js_op> ? 代碼B區(qū)域用來實(shí)現(xiàn)A區(qū)域代碼的接口,以及要調(diào)用91SDK的iOS方法,直白點(diǎn)說,代碼B區(qū)域?qū)懙姆椒ň褪怯脕碚{(diào)用代碼C區(qū)域的方法。 <ignore_js_op> ? 代碼C區(qū)域用來實(shí)現(xiàn)真正的91SDK的OBJ-C方法。 <ignore_js_op> ? 大家在自己的項(xiàng)目中: 代碼A區(qū)域作為可直接復(fù)制套用; 代碼B區(qū)域可編寫工具方法和調(diào)用iOS的方法; 代碼C區(qū)域編寫91SDK的iOS方法,你需要什么API就寫什么,寫完了在代碼B區(qū)域添加C的調(diào)用方法即可。 ? 在編寫代碼中,有的人可能會(huì)問OBJ-C中有的API有回調(diào),UNITY是如何知道OBJ-C回調(diào)結(jié)束呢? 答:OBJ-C調(diào)用UNITY的API,可以用“UnitySendMessage”的方法?,具體使用方法 看UINTY的使用幫助。 ? 這樣我們完成了C接口和91SDK的API代碼,接下來我們做UINITY3D方面的代碼處理。 我們在UNITY3D項(xiàng)目的ASSETS下新建Code文件夾與Plugins文件夾。 <ignore_js_op> 將LsSdkConector.h 和 LsSdkConector.m 復(fù)制到 Plugins 文件夾中,并在 Code文件夾中編寫我們的UNITY調(diào)用OBJ-C 方法。 新建C#文件“LsSdkConector.cs”,這個(gè)文件中,我們將代碼分為A、B兩區(qū)。 ? 代碼A區(qū)編寫C語言的接口,這里的接口方法要對(duì)應(yīng)”LsSdkConector.m”中代碼區(qū)域B的方法名稱。 <ignore_js_op> ? 代碼B區(qū)編寫UNITY3D調(diào)用OBJ-C的方法,這里的代碼注意用來實(shí)現(xiàn)UNITY3D之間的方法調(diào)用,C#的方法內(nèi)調(diào)用C的方法。 <ignore_js_op> ? 這樣,UNITY3D接入91SDK-iOS版的解決方案到此完成。 <ignore_js_op> ? 下面,我們測試一下這個(gè)解決方案是否管用。 在Code文件夾中新建 “LisiTest.cs”文件,編輯如下代碼: <ignore_js_op> 并將該C#文件拖至Main Camera 綁定。 ? UNITY3D轉(zhuǎn)iOS項(xiàng)目必須要設(shè)置BundleIdentifier,截圖: <ignore_js_op> ? 點(diǎn)擊“Build”按鈕創(chuàng)建iOS項(xiàng)目,打開該iOS項(xiàng)目,將LsSdkConector.h?和 LsSdkConector.m拖入iOS項(xiàng)目的Classes文件夾中 <ignore_js_op> ? 按照91SDK文檔中環(huán)境配置章節(jié),對(duì)SDK進(jìn)行引用,添加系統(tǒng)庫,做環(huán)境配置。 打包到iOS設(shè)備前,檢查一下iOS項(xiàng)目的配置,注意OBJC要寫在第1列,還有要注意大小寫。 <ignore_js_op> <ignore_js_op> ? 選擇使用iOS設(shè)備打包,你會(huì)發(fā)現(xiàn)UNITY3D調(diào)用iOS 成功了!! ? 本文要告訴大家的是Unity3D與iOS交互的解決方案,代碼規(guī)范問題不是本文重點(diǎn),比如91SDK的初始化在SDK文檔上推薦是在AppDelegate的文件中進(jìn)行初始化。 ? 附件:?<ignore_js_op>?
文中提及文件.zip?(2.25 KB, 下載次數(shù): 401)
Unity3D與Android之間的交互可以參考我的另一篇文章:《實(shí)操UNITY3D接入91SDK安卓版》 ?
轉(zhuǎn)載于:https://www.cnblogs.com/123ing/p/3703715.html
總結(jié)
以上是生活随笔為你收集整理的UNITY3D与iOS交互解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。