0

我是 unity3D 和 C#(和 IOS :) 的新手,但需要在 iPhone 上使用旧的 C 库(.h 和 .a 文件)。我从统一文档中阅读了一些关于插件的内容,但仍然对复杂的程序感到不知所措。任何大师都可以告诉我走出困境的正确方法吗?谢谢!

4

1 回答 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 回答