gpt4 book ai didi

c# - 适用于 Unity 的 iOS 插件

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:44:56 24 4
gpt4 key购买 nike

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

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

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

有人可以指点我一些文档或任何可能帮助我将 4 个头文件和 .a 文件作为插件引入 Unity 的内容吗?

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

最佳答案

你不需要源文件,只要你知道函数的声明,就连头文件也不需要。

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");

常见陷阱:

  • 您不应在 Assets/Plugins/iOS 中构建目录结构,否则文件不会被复制到生成的 Xcode 项目中
  • 在编辑播放器中测试时提供回退解决方案

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com