Unity3D如何接入第三方的SDK - iOS篇


來源:http://blog.csdn.net/smlisi2/article/details/8786485

授人以魚,不如授人以漁”,以UNITY3D調用iOS版的91SDK為例,利用C# / C / OBJ-C 交互原理,本文將詳細介紹UNITY3D與iOS之間交互的解決方案。
 
 
首先,打開XCODE新建一個空項目,參照91SDK開發文檔將91SDK引入並進行環境配置。
配置完畢后創建一個名為“LsSdkConector”的OBJ-C CLASS文件。完畢后,當前項目應如圖:
 
 
LsSdkConector.h文件我們不用去改動它。保持原樣即可。
 
接下來我們開始在LsSdkConector.m 文件中制作C接口 和 調用91SDK的iOS方法。
引入必要的頭文件后,我把該文件的代碼分為3個區域。
 
代碼A區域用來定義C接口必須要實現的API。
 
 
代碼B區域用來實現A區域代碼的接口,以及要調用91SDK的iOS方法,直白點說,代碼B區域寫的方法就是用來調用代碼C區域的方法。
 
 
代碼C區域用來實現真正的91SDK的OBJ-C方法。
 
 
大家在自己的項目中:
代碼A區域作為可直接復制套用;
代碼B區域可編寫工具方法和調用iOS的方法;
代碼C區域編寫91SDK的iOS方法,你需要什么API就寫什么,寫完了在代碼B區域添加C的調用方法即可。
 
 
在編寫代碼中,有的人可能會問OBJ-C中有的API有回調,UNITY是如何知道OBJ-C回調結束呢?
答:OBJ-C調用UNITY的API,可以用“UnitySendMessage”的方法 ,具體使用方法 看UINTY的使用幫助。
 
 
這樣我們完成了C接口和91SDK的API代碼,接下來我們做UINITY3D方面的代碼處理。
 
我們在UNITY3D項目的ASSETS下新建Code文件夾與Plugins文件夾。
 
 
 
將LsSdkConector.h 和 LsSdkConector.m 復制到 Plugins 文件夾中,並在 Code文件夾中編寫我們的UNITY調用OBJ-C 方法。
新建C#文件“LsSdkConector.cs”,這個文件中,我們將代碼分為A、B兩區。
 
 
代碼A區編寫C語言的接口,這里的接口方法要對應”LsSdkConector.m”中代碼區域B的方法名稱。
 
 
代碼B取編寫UNITY3D調用OBJ-C的方法,這里的代碼注意用來實現UNITY3D之間的方法調用,C#的方法內調用C的方法。
 
 
 
這樣,UNITY3D接入91SDK-iOS版的解決方案到此完成。
 
 
 
下面,我們 測試一下這個解決方案是否管用。
 
在Code文件夾中新建 “LisiTest.cs”文件,編輯如下代碼:
 
 
並將該C#文件拖至Main Camera 綁定。
 
UNITY3D轉iOS項目必須要設置BundleIdentifier,截圖:
 
點擊“Build”按鈕創建iOS項目,打開該iOS項目,將LsSdkConector.h 和 LsSdkConector.m拖入iOS項目的Classes文件夾中
 
 
按照91SDK文檔中環境配置章節,對SDK進行引用,添加系統庫,做環境配置。
 
打包到iOS設備前,檢查一下iOS項目的配置,注意OBJC要寫在第1列,還有要注意大小寫。
 
 
 
選擇使用iOS設備打包,你會發現UNITY3D調用iOS 成功了!!
 
 
本文要告訴大家的是Unity3D與iOS交互的解決方案,代碼規范問題不是本文重點,比如91SDK的初始化在SDK文檔上推薦是在AppDelegate的文件中進行初始化。
 
 
附件:    文中提及文件.zip (2.25 KB, 下載次數: 305)



 
 
 
Unity3D與Android之間的交互可以參考我的另一篇文章: 《實操UNITY3D接入91SDK安卓版》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM