国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS與Unity交互筆記之參數傳遞

2020-07-26 02:20:38
字體:
來源:轉載
供稿:網友

1. 調用方法一

Unity調方法傳參,有返回值

// Unity代碼[DllImport("__Internal")]// 給iOS傳string參數,有返回值,返回值通過iOS的return方法返回給Unityprivate static extern string getIPv6(string mHost, string mPort)
// iOS代碼extern "C" const char * getIPv6(const char *mHost, const char *mPort){  // strdup(const char *__s1) 復制mHost字符串,通過Malloc()進行空間分配   // return strdup(mHost);  return makeStringCopy(mHost);}char* makeStringCopy(const char* string){  if (NULL == string) {    return NULL;  }  char* res = (char*)malloc(strlen(string)+1);  strcpy(res, string);  return res;}

如果Unity傳參為string類型,不執行strdup()方法而直接使用return方法,導致mHost沒有分配內存空間而報錯

這里的const char* 會被C#自動轉換成string因為在.m文件中使用了內存申請,該段內存自然是處在堆內存中,這樣轉成string符合c#的內存管理機制,我們不用擔心它的釋放問題

如果Unity傳參為int等基礎數據類型,可以直接使用return方法

調用DllImport(“”)方法,需要引入命名空間:using System.Runtime.InteropServices

2. 調用方法二

Unity調方法傳參,無返回值

// Unity代碼// 傳數據給iOS[DllImport("__Internal")]// 給iOS傳string參數,無返回值,返回值通過iOS的UnitySendMessage方法返回給Unityprivate static extern void setDate(string date);// 接收iOS的數據public void GetDate(string date){}
// iOS代碼extern "C" void setDate(const char *date){  /**  發送數據給Unity  @param obj 模型名  @param method Unity接收iOS數據的方法名  @param msg 傳給Unity的數據  UnitySendMessage(const char* obj, const char* method, const char* msg);  */  UnitySendMessage("PublicGameObject", "GetDate", date);}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富阳市| 江永县| 韶山市| 大方县| 牡丹江市| 丰原市| 增城市| 乌鲁木齐县| 桐梓县| 抚宁县| 三门县| 长寿区| 建湖县| 扎赉特旗| 秭归县| 马公市| 新建县| 驻马店市| 麻城市| 同心县| 临清市| 信阳市| 松滋市| 和静县| 东兰县| 岑巩县| 鹿泉市| 白沙| 山东省| 章丘市| 探索| 道孚县| 贞丰县| 太白县| 滦南县| 江川县| 林甸县| 兴海县| 象州县| 和龙市| 锡林郭勒盟|