0

我正在尝试使用 TeamCity 构建一个简单的 Unity3D 项目。问题是 TeamCity 找不到场景文件,我收到以下错误消息:

"C:\Program Files (x86)\Unity\Editor\Unity.exe" -batchMode -quit -nographics -projectPath C:\unityProject
[catting log file]
'' is an incorrect path for a scene file. BuildPlayer expects paths relative to the project folder.
'' is an incorrect path for a scene file. BuildPlayer expects paths relative to the project folder.

图像显示了我如何设置构建。当我在计算机上使用命令行运行构建时,构建项目没有问题,只需使用 TeamCity。我在想是否有办法在编辑器中添加场景文件。我不想使用“方法执行”并运行 BuildPipeline.BuildPlayer() 方法。

4

2 回答 2

1

如果在您的构建命令scenes : String[]参数中有空字符串,则会发生错误''

如果您将 AutoBuilder Script ( C# , JavaScript ) 放入Assets/Editor项目中的任何文件夹或子文件夹中,您可以轻松地调用适合您的 Player OS 的构建脚本,-executeMethod如下所示:

Unity -buildTarget android -executeMethod "AutoBuilder.PerformAndroidBuild"

AutoBuilder 会自动传递选定的场景,如下所示:

/**
 * Gets the paths of the activated scenes from the BuildSettings
 * @return {String[]} BuiltinArray of Strings
 */
function GetScenePaths () {
    var scenes = new Array();

    for(var i : int = 0; i < EditorBuildSettings.scenes.Length; i += 1) {

        /**
         * Only add scene, if it is enabled in the build settings.
         */
        if (EditorBuildSettings.scenes[i].enabled) {
            scenes.Push(EditorBuildSettings.scenes[i].path);
        }
    }

    /**
     * Return a builtin array instead of a JavaScript Array
     */
    var builtinArray : String[] = scenes.ToBuiltin(String) as String[];
    return builtinArray;
}

您可以在此处找到 JavaScript 中的 AutoBuilder:https ://github.com/geildanke/UNT.autobuilder (我将 C# AutoBuilder.cs 中的出色工作重写为 JavaScript,供喜欢 JavaScript 的人使用)

于 2015-04-30T21:55:34.960 回答
0

有一个选项可以Execute Method在您的图像上设置一个。您是否创建了一个静态构建类来设置构建管道?

例如(直接取自文档):

// C# example
using UnityEditor;
class MyEditorScript
{
    static void PerformBuild ()
    {
        string[] scenes = { "Assets/MyScene.unity" };
        BuildPipeline.BuildPlayer(scenes, ...);
    }
}
于 2013-07-28T15:12:57.023 回答