Unity version 2020.3.13f1
So I'm fighting with this bug.
.
Unity keeps telling me 'Assets/Scenes/InitializeClient.unity' is an incorrect path for a scene file. BuildPlayer expects paths relative to the project folder.
.
So I decided to look up their documentation to see what they actually mean.
"The Scenes to be included in the build. If empty, the currently open Scene will be built. Paths are relative to the project folder (Assets/MyLevels/MyScene.unity)."
.
The documentation: https://docs.unity3d.com/ScriptReference/BuildPlayerOptions-scenes.html
.
It builds fine if I use the normal way ctrl+shift+B and manually setting the scenes in the build. Is this currently broken in unity or is there some special way to call these scenes via code that the documentation is leaving out?
.
using UnityEditor;
using UnityEngine;
public class myBuildPipeline
{
[MenuItem("Build/BuildAll")]
public static void BuildAll()
{
BuildServer();
BuildClient();
}
[MenuItem("Build/BuildServer")]
public static void BuildServer()
{
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = new[] { "Assets/Scenes/InitializeServer.unity" };
buildPlayerOptions.locationPathName = "/Builds/Server/Server.exe";
buildPlayerOptions.target = BuildTarget.StandaloneWindows64;
buildPlayerOptions.options = BuildOptions.EnableHeadlessMode;
BuildPipeline.BuildPlayer(buildPlayerOptions);
}
[MenuItem("Build/BuildClient")]
public static void BuildClient()
{
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = new[] { "Assets/Scenes/InitializeClient.unity" };
buildPlayerOptions.locationPathName = "/Builds/Client/Client.exe";
buildPlayerOptions.target = BuildTarget.StandaloneWindows64;
BuildPipeline.BuildPlayer(buildPlayerOptions);
}
}
↧