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

blog: http://blog.csdn.net/david_dai_1108

猜你喜欢

转载自blog.csdn.net/david_dai_1108/article/details/78484482