我正在为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是第一个被抓住的人。有没有解决的办法? THX!
与往常一样,我很乐意提供任何其他细节!
以下是导致错误的示例项目: Sample Unity Project with FMod
编辑: 冲突是由iOS引起的,即使它们没有相同的签名,也不允许函数具有相同的名称。删除相同名称的函数(从而删除了一些我不需要的FMOD功能)之后,我可以编译到iOS,但是正如预期的那样,我在初始化时仍然会收到错误,因为Unity已经初始化了FMOD。
答案 0 :(得分:2)
Unity3d已经有一个与之捆绑的FMOD限制版,这会导致您看到的冲突。不幸的是,此时似乎无法禁用,因此您可以使用完整版的FMOD
答案 1 :(得分:1)
在参考您的编辑时,在查看示例之后,您确实无法拥有两个同名的方法,因为编译器无法识别链接到哪个方法。
简单的解决方法显然是以不同的方式命名。
对于初始化,如果您可以访问Unity 3D已经创建的FMOD,那么您不必重新初始化它。
我假设指向该对象的指针足以删除重复的初始化。希望这很清楚。