UNITY3D與iOS交互解決方案

原地址:http://bbs.18183.com/thread-456979-1-1.html

本帖最后由 啊,將進酒 于 2014-2-27 11:17 編輯

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



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

?

轉載于:https://www.cnblogs.com/123ing/p/3703715.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/377063.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377063.shtml
英文地址,請注明出處:http://en.pswp.cn/news/377063.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c:if equal_C ++中的std :: equal()

c:if equalequal()作為STL函數 (equal() as a STL function) Syntax: 句法&#xff1a; bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2);Where, 哪里&#xff0c; InputIterator1 first iterator to start of the first sequence range I…

《DBNotes:Buffer Pool刷臟頁細節以及改進》

本筆記知識沿用之前DBNotes: Buffer Pool對于緩沖頁的鏈表式管理的部分知識 目錄獲取一個空閑頁的源碼邏輯Page_Cleaner_ThreadLRU_Manager_ThreadHazard Pointer作為驅逐算法改進參考獲取一個空閑頁的源碼邏輯 任何一個讀寫請求都需要從Buffer pool來獲取所需頁面。如果需要的…

WordPress刪除數據中標題重復文章的方法

一種是刪除重復的方法是&#xff1a;使用插件,大家可以去官網上下載 二種刪除重復的方法是&#xff1a;登錄數據庫&#xff0c;使用sql語句刪除&#xff0c;具體的語句為如下代碼&#xff1a; CREATE TABLE my_tmp AS SELECT MIN(ID) AS col1 FROM wp_posts GROUP BY post_titl…

hibernate配置

hibernate.cfg.xml <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd&quo…

html中表單元素_HTML中的表單元素

html中表單元素1)<input>元素 (1) The <input> Element) The <input> element is used to get input from the user in an HTML form. <input>元素用于以HTML形式從用戶獲取輸入。 <input> tag is used to get input using input element, the …

《搜索算法——DFS、BFS、回溯》

目錄深搜200. 島嶼數量695. 島嶼的最大面積130. 被圍繞的區域547. 省份數量417. 太平洋大西洋水流問題回溯廣搜111. 二叉樹的最小深度752. 打開轉盤鎖深搜與廣搜結合934. 最短的橋深搜 深搜DFS&#xff0c;在搜索到一個新節點時&#xff0c;立即對該新節點進行遍歷&#xff0c…

AP in R

AP聚類算法是目前十分火的一種聚類算法&#xff0c;它解決了傳統的聚類算法的很多問題。不僅簡單&#xff0c;而且聚類效果還不錯。這里&#xff0c;把前兩天學習的AP算法在R語言上面的模擬&#xff0c;將個人筆記拿出來與大家分享一下&#xff0c;不談AP算法的原理&#xff0c…

nginx 模塊解析

nginx的模塊非常之多&#xff0c;可以認為所有代碼都是以模塊的形式組織&#xff0c;這包括核心模塊和功能模塊&#xff0c;針對不同的應用場合&#xff0c;并非所有的功能模塊都要被用到&#xff0c;附錄A給出的是默認configure&#xff08;即簡單的http服務器應用&#xff09…

python關鍵字和保留字_Python關鍵字

python關鍵字和保留字關鍵詞 (Keywords) Keywords are the reserved words in Python programming language (and, any other programming languages like C, C, Java, etc) whose meanings are defined and we cannot change their meanings. In python programming languages…

《LeetcodeHot100非困難題補錄》

最近比較閑&#xff0c;也比較焦慮&#xff0c;刷刷題吧 目錄11. 盛最多水的容器22. 括號生成31. 下一個排列48. 旋轉圖像49. 字母異位詞分組56. 合并區間75. 顏色分類79. 單詞搜索114. 二叉樹展開為鏈表141. 環形鏈表148. 排序鏈表152. 乘積最大子數組169. 多數元素207. 課程表…

Java里String.split需要注意的用法

我們常常用String的split()方法去分割字符串&#xff0c;有兩個地方值得注意&#xff1a; 1. 當分隔符是句號時(".")&#xff0c;需要轉義&#xff1a; 由于String.split是基于正則表達式來分割字符串&#xff0c;而句號在正則表達式里表示任意字符。 //Wrong: //Str…

C# Socket 例子(控制臺程序)

服務器代碼 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; using System.IO;namespace TCPListener {class Program{static void Main(string[] args){const int BufferSize 1024;Con…

Scala中的值類

Value classes are a special mechanism in Scala that is used to help the compiler to avoid allocating run time objects. 值類是Scala中的一種特殊機制&#xff0c;用于幫助編譯器避免分配運行時對象。 This is done by defining a subclass of AnyVal. The only parame…

《MySQL8.0.22:Lock(鎖)知識總結以及源碼分析》

目錄1、關于鎖的一些零碎知識&#xff0c;需要熟知事務加鎖方式&#xff1a;Innodb事務隔離MVCC多版本并發控制常用語句 與 鎖的關系意向鎖行級鎖2、鎖的內存結構以及一些解釋3、InnoDB的鎖代碼實現鎖系統結構lock_sys_tlock_t 、lock_rec_t 、lock_table_tbitmap鎖的基本模式的…

關于ORA-04021解決辦法(timeout occurred while waiting to lock object)

某個應用正在鎖定該表或者包 表為 select b.SID,b.SERIAL#,c.SQL_TEXT from v$locked_object a, v$session b, v$sqlarea c where a.SESSION_ID b.SID and b.SQL_ADDRESS c.ADDRESS and c.sql_text like %table_name% 包為 select B.SID,b.USERNAME,b.MACHINE FROM V$ACCESS …

HtmlAutoTestFrameWork

前段時間做的自動化測試的是Silverlight的&#xff0c;框架都已經搭好。突然測試發現這里還有一個要發送郵件的html頁面&#xff0c;并且將另外啟動瀏覽器&#xff0c;于是今天下午把這個html的也寫出來。用法 &#xff1a; HtmlAutoTestFrameWork htf new HtmlAutoTestFrameW…

L8ER的完整形式是什么?

L8ER&#xff1a;稍后 (L8ER: Later) L8ER is an abbreviation of "Later". L8ER是“ Later”的縮寫 。 It is an expression, which is commonly used in messaging or chatting on social media networking sites like Facebook, Yahoo Messenger, and Gmail, etc…

Randomize select algorithm 隨機選擇算法

從一個序列里面選擇第k大的數在沒有學習算法導論之前我想最通用的想法是給這個數組排序&#xff0c;然后按照排序結果返回第k大的數值。如果使用排序方法來做的話時間復雜度肯定至少為O&#xff08;nlgn&#xff09;。 問題是從序列中選擇第k大的數完全沒有必要來排序&#xff…

《Linux雜記:一》

目錄CPU負載和CPU利用率CPU負載很高,利用率卻很低的情況負載很低,利用率卻很高常用linux命令常用的文件、目錄命令常用的權限命令常用的壓縮命令CPU負載和CPU利用率 可以通過 uptime , w 或者 top 命令看到CPU的平均負載。 Load Average :負載的3個數字,比如上圖的0.57、0.4…

IOS Plist操作

代碼&#xff1a;copy BUNDLE下的plist文件 到 library下面。 bundle下不支持些&#xff0c;library&#xff0c;doc路徑支持讀與寫。 (void)copyUserpigListToLibrary {NSFileManager *fileManager [NSFileManager defaultManager];NSArray *paths NSSearchPathForDirector…