我是 unity3D 和 C#(和 IOS :) 的新手,但需要在 iPhone 上使用旧的 C 库(.h 和 .a 文件)。我从统一文档中阅读了一些关于插件的内容,但仍然对复杂的程序感到不知所措。任何大师都可以告诉我走出困境的正确方法吗?谢谢!
问问题
1411 次
1 回答
4
通过这个链接。这给出了为 iOS 制作插件的想法。如有疑问,请询问。
插件的一个实际例子
1) 在 Unity 的 plugins 文件夹中创建一个名为 AppControllerBinding.cs 的 C# 文件,并添加如下代码:
using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;
// All Objective-C exposed methods should be bound here
public class AppControllerBinding
{
[DllImport("__Internal")]
private static extern void _MyFunction(string myName);
public static void MyFunction(string MyNameIN)
{
// Call plugin only when running on real device
if( Application.platform == RuntimePlatform.IPhonePlayer )
_MyFunction(MyNameIN);
}
}
2) 将 MyFunction() 函数添加到 Xcode 内部 AppController.mm 文件的底部,如下所示(在 @end 语句之后):
extern "C"
{
void _MyFunction(const char* MyName)
{
NSString* s = [NSString stringWithUTF8String: MyName];
[Self logName:s]; //<-----logName is method which takes string parameter
printf_console("_MyFunction() called in Appcontroller.mm in Xcode.\n");
}
}
3) 当你想在 Unity 中使用 AppController.mm 的 logName 函数时,只需像这样调用:
AppControllerBinding.MyFunction("Nick");
于 2013-09-12T05:44:25.173 回答