【发布时间】:2013-04-04 05:28:11
【问题描述】:
我正在为 Unity3D 使用 fmod 插件。编译到 Windows 和 OSX 很好,因为我可以动态加载 DLL/dylib。 当我为 iOS 编译时,问题就来了。我用
[DllImport("__Internal")]
因为 iOS 需要静态链接库。当我编译时我得到一个
SystemException: Duplicate native method found : FMOD_System_CreateSound. Please check your source carefully.
我很确定我没有复制符号。我认为这可能是由于 Unity 自己导入 FMOD 并且两者可能会发生冲突......但如果是这种情况,我很惊讶 FMOD_System_CreateSound 是第一个被抓住的。有没有解决的办法?谢谢!
与往常一样,我很乐意提供任何其他详细信息!
这是一个会导致错误的示例项目: Sample Unity Project with FMod
编辑: 冲突是由于 iOS 不允许函数具有相同的名称,即使它们没有相同的签名。删除同名函数后(从而删除了一些我不需要的 FMOD 功能),我可以编译到 iOS,但正如预期的那样,我在初始化时仍然收到错误,因为 FMOD 已经被 Unity 初始化了。
【问题讨论】:
-
我遇到了同样的问题,来自 Apple 的可达性代码,因为统一实际上已经实现了它。您是否尝试在 Unity API 上使用 FMOD?还是 FMOD 缺少您需要的功能?我读过 unity 暴露了 FMOD 的一些特性。
-
Unity API 上的 FMOD 不允许我从 iOS 沙箱外部流式传输数据。我需要完整的 FMOD API。 square tangle 插件不能解决问题。它只是使用来自 Windows API 的 .cs 并将它们包含在 Unity 项目中。另外,它在您链接的那个页面上说它在 iOS 上不起作用;)
标签: ios duplicates unity3d static-libraries native