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

  • 可以下载/加载AssetBundle并从中打开场景的主项目 .

  • 具有多个场景的项目,这些场景生成可由项目1加载的AssetBundles .

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

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

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

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

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