从Unity中的AssetBundle中排除C#脚本

时间:2017-01-10 10:53:49

标签: c# unity3d assetbundle

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

  1. 可以下载/加载AssetBundle并从中打开场景的主项目。
  2. 具有多个场景的项目,可生成可由项目1加载的AssetBundles。
  3. 每当我构建应用程序时,所有脚本都将被编译,并最终从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'.

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

0 个答案:

没有答案