unity中c#與Objective-C相互呼叫
阿新 • • 發佈:2019-02-17
前言
在unity中接入sdk或者定製一些功能時,需要呼叫系統介面。iphone手機實際操作中,也就是Unity與iOS相互呼叫。我們在Unity中使用c#,iOS中使用Objective-C(以下稱為oc)。
下面介紹他們如何相互呼叫。
c# 呼叫 oc
oc內實現:
extern "C" {
void _SetLoginURLScheme(const char * urlSchema) // c#中的string型別 在mm裡是 char *
{
//具體業務邏輯
}
}
c#呼叫:
// 提供各種各樣支援 COM interop 及平臺呼叫服務的成員
// 最重要的屬性有 DllImportAttribute(可以用來定義用於訪問非託管 API 的平臺呼叫方法)
// MarshalAsAttribute(可以用來指定如何在託管記憶體與非託管記憶體之間封送資料)。
using System.Runtime.InteropServices;
// _SetLoginURLScheme 為 .mm 中的方法名
[DllImport("__Internal")]
public static extern void _SetLoginURLScheme( string urlschema); // c#中的string型別 在mm裡是 char *
// 使用時直接呼叫
_SetoginURLScheme(url);
oc 呼叫 c
//引數1:unity內gameObject名稱
//引數2:該gameObject掛的指令碼方法名稱
//引數3:傳遞的引數
UnitySendMessage("Cube", "buttonCall", "");
如有錯誤,歡迎指出。
email:dxmdxm1992#gmail.com