前言
在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