1. 程式人生 > >unity中c#與Objective-C相互呼叫

unity中c#與Objective-C相互呼叫

前言

在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