gpt4 book ai didi

unity-game-engine - 如何通过命令行指定场景名称构建Unity WebGl?

转载 作者:行者123 更新时间:2023-12-02 02:09:06 25 4
gpt4 key购买 nike

我有一个包含一些场景的 WebGl Unity 应用程序。我需要为每个场景进行构建,假设 SceneA、SceneB、SceneC...

因此,为了进行构建,我写道:

"C:\Program Files\Unity\Editor\Unity.exe" -buildTarget WebGL ... SceneName ?

问题是:

  • 如何指定SceneName?
  • 如何指定目标目录?

谢谢

最佳答案

您是想问通过命令行构建时如何指定使用哪些场景?如果是这样,我会这样做。

对于你的第一个问题,

How to specify SceneName ?

我不知道您是否可以在命令行中直接指定场景名称,但您可以使用命令行运行特定函数,从而更改为项目构建的场景。

这是您需要的代码片段,但可以根据您的用例进行更改

using UnityEditor;
class MyEditorScript
{
static void PerformBuild ()
{
string[] scenes = { "Assets/MyScene.unity" };
BuildPipeline.BuildPlayer(scenes, ...);
}
}

上面的代码片段非常简单,您可以直接指定每个场景,然后将其添加到build设置中。您可以传入参数来获得不同的结果或创建多个函数,无论哪种对您来说最简单。以下是在命令行中调用此函数的方法

"C:\Program Files\Unity\Editor\Unity.exe" -batchmode -executeMethod MyEditorScript.PerformBuild

我在这里使用-batchmode,因此如果出现任何提示,Unity 将使它们静音,以便该过程可以更加自动化。

至于你的第二个问题,

And how to specify destination directory ?

我不确定您是否想将保存的目录和构建的场景联系起来,但这可能会让一切变得更容易。有一个名为 BuildPlayerOptions.locationPathName 的build设置,它允许您指定构建的保存位置

static void WebGLProductionBuild()
{
// Build the player.\
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = new[] { "Assets/Scene1.unity", "Assets/Scene2.unity" };
buildPlayerOptions.locationPathName = "yourLocationNameHere";
buildPlayerOptions.target = BuildTarget.WebGL;
buildPlayerOptions.options = BuildOptions.None; // set whatever you want here
BuildPipeline.BuildPlayer(buildPlayerOptions); // apply the setting changes
}

除了函数调用如上行之外,调用上面的方法是完全相同的

"C:\Program Files\Unity\Editor\Unity.exe" -batchmode -executeMethod MyEditorScript.WebGLProductionBuild

我不相信你想要实现的目标可以完全从命令行完成,但这个答案非常接近。我也不确定你是否想要将场景和新路径捆绑在一起。如果您希望构建每个单独的场景并指定新路径,可以通过使用 switch 语句创建一个新函数或仅调用多个函数来实现。

关于unity-game-engine - 如何通过命令行指定场景名称构建Unity WebGl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67943915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com