为什么Mono Develop(Unity)自己从脚本中删除我的自定义定义指令?

时间:2018-07-18 06:55:13

标签: c# unity3d monodevelop

好的,我的C#代码段如下所示:

#if ASSET_BUNDLE_PKG
    loadfromAssetBundle();
#else
    loadfromResources();
#endif

我还有另一个脚本可以执行此操作:“如果它在项目中检测到“资产捆绑包”,则将定义指令ASSET_BUNDLE_PKG统一。如果检测到该包不存在,则将其删除定义指令ASSET_BUNDLE_PKG团结一致。”很简单。

现在,当我添加程序包并运行代码时,一切正常,并从资产捆绑包中统一加载。

当我删除软件包并运行代码时,一切正常,并从资源中统一加载。

当我再次添加软件包时,会发生以下情况:

1- Mono开发会将代码还原为:

loadfromAssetBundle();

也就是说,它会完全删除#if语句。

2-显然,我遇到了编译器错误,因为如果不存在该软件包,则无法从资产捆绑中加载!那就是#if语句的初衷!

谁在独自更改脚本?

1 个答案:

答案 0 :(得分:0)

好的,这是问题所在。

该软件包包含一个源自“ xyz.cs”的脚本。包含我在问题中发布的代码的脚本也源自脚本“ xyz.cs”。两者都使用同一个文件,这可能导致了mono development的怪异行为。我制作了一个“ xyz.cs”的副本,将其重命名并将其放置在程序包中,并在程序包中使用的任何位置更新了名称。