1

我目前正在使用 Unity3D 为 WinRT 平台构建应用程序。我有2个项目:

  1. 可以下载/加载 AssetBundle 并从中打开场景的主项目。
  2. 具有多个场景的项目,可生成可由项目 1 加载的 AssetBundle。

每当我构建应用程序时,都会编译所有脚本,并最终从 AssetBundle 中排除。这正是我想要的,因为这样我可以强制项目 2 可以使用项目 1 定义的共享脚本,但不能创建自定义脚本。(只需给它们相同的名称,当您在项目 1 中加载 AssetBundle 时,Unity 会自动加载正确的脚本)。

但是,当我在 Project2 中使用 async/await 代码或使用其他一些 WinRT 函数时,我在编译 AssetBundles 时遇到了编译错误。我真的不明白为什么,因为最终脚本无论如何都不会被包含在内。(如果我加载在 Project2 中定义但不在 Project1 中定义的脚本,我会看到“缺少脚本”错误,这是我所期望的)。

所以基本上,我想要的是能够创建一个 AssetBundle,带有指向脚本的链接,但不编译脚本(因为编译的脚本将存在于 Project1 中)。

我还尝试定义“UNITY_EDITOR”属性(在编辑>项目设置>播放器下)(因为我的异步/等待代码在编译期间使用它来省略部分代码),但这会导致更多错误不再查找某些命名空间,例如: using UnityEngine.VR.WSA.Sharing;显示错误:error CS0234: The type or namespace name 'Sharing' does not exist in the namespace 'UnityEngine.VR.WSA'.

有没有人知道如何解决/解决这个问题?

4

0 回答 0