0

我有一个具有下一个结构的 Unity 本机插件:

  • Plugins/Android/Foo.jar// 原生安卓库
  • Plugins/Android/Foo.Android.dll// 托管 Unity 包装器以允许访问本机 Android 例程(标记为仅适用于 Android)
  • Plugins/iOS/libFoo.a// 原生 iOS 库
  • Plugins/iOS/Foo.iOS.dll// 托管 Unity 包装器以允许访问本机 iOS 例程(标记为仅适用于 iOS)

当我选择 Android 或 iOS 平台并在 MonoDevelop 中打开我的 Unity 项目时,它不会添加对 Foo.Android.dll 的引用。iOS 的情况也一样。还Unity Editor Console包含关于在插件外部的 Unity 代码中使用的未引用类的错误。

Assets/MainScript.cs(3,11): error CS0234: The type or namespace name命名空间中不存在 Bar'Foo'. Are you missing an assembly reference?

在分别在 iOS/Android 下打开 MonoDevelop 之前更改Foo.iOS.dll/Foo.Android.dll平台设置时,它按预期工作。Any Platform

当我构建项目时,它已为 iOS 和 Android 成功构建。

我需要在哪里放置我的托管库或者我应该使用哪些设置来强制 Unity 添加适当的库作为打开 MonoDevelop 项目的参考?

Unity 编辑器 5.2.0f3、OS X Yosemite 10.10.5 (14F27)

4

1 回答 1

0

一种可能的解决方案:

Unity Editor 仅包含标记为 for 的库,而不是在仅选择目标平台的情况下Editor添加新存根库的问题已解决。Plugins\X86\Foo.Editor.dllEditor

在此 Unity 之后,在打开 Mono Develop 项目时添加对存根的引用,Plugins\X86\Foo.Editor.dll但在构建时使用实际的平台相关库。

于 2015-10-02T11:37:03.943 回答