OStack程序员社区-中国程序员成长平台

标题: c# - 适用于 Unity 的 iOS 插件 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:19
标题: c# - 适用于 Unity 的 iOS 插件

我知道为 Unity 创建插件的基本前提是为要从 Unity 中调用的所有类创建一个包装器。但是,我发现的所有文档和示例都需要一个相应的 .cpp(如果是 c++)或 .mm(如果是 Objective-c)文件。

但是,我正在尝试为一些不包含任何源文件的 native iOS 代码创建插件。我只能访问四个头文件和一个 .a 文件。 Which I have gotten from here.

现在,因为我没有要包装的任何 .mm 文件,我有点困惑如何将这些文件引入 Unity,以便我可以从内部调用它们。以前有人做过吗?

在将 4 个头文件和 .a 文件作为插件引入 Unity 时,有人可以指出一些文档或任何可以帮助我的东西吗?

请记住,我没有可以访问的源文件。只有头文件本身。



Best Answer-推荐答案


你不需要源文件,甚至头文件都不需要,只要你知道函数的声明。

Building Plugins for iOS 中所述:

1.) 将您的 .a 文件放入 Assets/Plugins/iOS 中

2.) 查看头文件以获取所需的函数签名,例如

void RegisterUnityIPodCallbackListener (const char* gameObject, const char* method);

3.) 通过以下方式在 C# 类中声明 RegisterUnityIPodCallbackListener:

public class IPodHandler {
    [DllImport("__Internal")]
    private static extern void RegisterUnityIPodCallbackListener (string gameObject, string method);
    public static void MyRegisterUnityIPodCallbackListener () {
       if (Application.platform == RuntimePlatform.IPhonePlayer) {
           RegisterUnityIPodCallbackListener (GAME_OBJECT, METHOD);
       }
    }
}

4.) 在适当的位置调用:

IPodHandler.MyRegisterUnityIPodCallbackListener ("MyCallbackGameObject", "MyCallbackMethod");

常见陷阱:

关于c# - 适用于 Unity 的 iOS 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19704537/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4