iOS真机上运行,经常需要第三方库,也难免需要C#和Objective-C交互,其实很简单,直接上例子:
一.C#的接口,调用ObjC中的函数
using UnityEngine;
using System.Collections;
// No.1
using System.Runtime.InteropServices;
public class SOpenUDID
{
// No.2
[DllImport("__Internal")]
// No.3 declear function in ObjC
private static extern string SUDID();
public static string UDID()
{
// No.4
if (Application.platform == RuntimePlatform.IPhonePlayer) {
return SUDID();
}
return "";
}
}
注意点:
No.1.引用头文件
No.2.DllImport后,就可以调用ObjC中的函数
No.3.声明,一般都是静态的函数声明(如果Obj中的函数返回const char*, 这里可以声明为string)
No.4.加上平台判断,我获取UDID无法在模拟器、编辑器下运行
二. ObjC类SVUDIDInterface.mm
#import "SvUDIDTools.h"
extern "C"
{
const char* SUDID()
{
return [[SvUDIDTools UDID