Unity的IPreprocessBuildWithReport.OnPreprocessBuild引发错误

时间:2018-05-11 11:47:24

标签: unity3d build unity-editor

我有一个小脚本,在构建之前在Resources文件夹中创建一个文本文件,需要包含在构建中。所以我使用Unity的IPreprocessBuildWithReport

编写了这个脚本
using UnityEngine;
using UnityEditor;
using UnityEditor.Build;
using System.IO;

class MyCustomBuildProcessor : IPreprocessBuildWithReport
{
    public int callbackOrder { get { return 0; } }
    public void OnPreprocessBuild(UnityEditor.Build.Reporting.BuildReport report)
    {
        File.WriteAllText(
            Application.dataPath + "/Resources/version.txt",
            string.Format("{0}", PlayerSettings.Android.bundleVersionCode)));

        AssetDatabase.Refresh();
    }
}

请注意最后的AssetDatabase.Refresh();语句。它确保Unity了解更改并在构建中包含更新的文件。现在,每当我更改bundleVersionCode并按下构建时,Unity都会按预期更新文件,但构建失败并出现这个非常一般的错误:

enter image description here

但是,如果我尝试使用相同的bundleVersionCode进行第二次构建,则不会发生文件更改并且构建成功。

所以我猜AssetDatabase.Refresh()OnPreprocessBuild()中不起作用,或者我在做一些明显愚蠢的事情了?有人可以建议解决方法吗?

修改 请忽略前两个错误,当我通过~后缀从构建中排除文件时,Unity不喜欢我。

0 个答案:

没有答案