iOS 和 Unity 互動之引數傳遞
摘要:
1. 呼叫方法一
Unity調方法傳參,有返回值
// Unity程式碼
[DllImport("__Internal")]
// 給iOS傳string引數,有返回值,返回值通過iOS的return方法返回給Unity
privat...
1. 呼叫方法一
- Unity調方法傳參,有返回值
// Unity程式碼 [DllImport("__Internal")] // 給iOS傳string引數,有返回值,返回值通過iOS的return方法返回給Unity private 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; }
using System.Runtime.InteropServices
2. 呼叫方法二
- Unity調方法傳參,無返回值
// Unity程式碼 // 傳資料給iOS [DllImport("__Internal")] // 給iOS傳string引數,無返回值,返回值通過iOS的UnitySendMessage方法返回給Unity private 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); }