Vixen
02b45cc4
csharp
public sealed class PlayerBuildSettings

What Build and Run builds: for what, as what, with which scenes, and where to.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Doc 20's B7, and it is the project's rather than the user's. Which platform a game ships on and which scenes are in it are facts about the game, so they are committed under ProjectSettings/ and arrive with a checkout — the same argument ContentBuildSettings makes about the content target, one level up.

⚠ Here rather than in Vixen.Editor.App, which is where it was, and for ProjectWorkspace's reason. The content build reads Scenes to write the manifest a player boots from, and that build is shared: it is ContentPipeline, called by the editor's Build and Run and by vixen content build. A settings type only the editor could see would have meant the two heads producing different content for one project — a player that opens its level when the editor built it and opens nothing when CI did.

⚠ No [Inspector], deliberately. BuildSettingsView is this type's drawer and always has been: order, a picker offering only scenes that exist and a column saying which entries no longer resolve are none of them expressible as a property attribute. Attributes that no page drew were the sort of decoration doc 20's "every member has a reader" bar exists to keep out.

⚠ Target is the player's and ContentBuildSettings.Target is the content's, and they are deliberately two settings. They agree in the ordinary case and must be able to disagree: importing for Android while the editor keeps drawing desktop textures is what a team building for a phone from a workstation does all day, and a single field would make "build the Android player" also mean "reimport the whole project as ASTC". The build reads this one and passes it to the content pipeline; the editor's own panels go on reading the other.

⚠ The variant is a property and not a configuration, which is PlayerBuild's rule and doc 17's: Development is optimised and keeps its profiler, so it is a Release compile with a different VixenVariant. The Build menu's Configuration ▸ is a view over this one field rather than a second setting beside it.

Fields and properties (4)

  • public string Target

    Which platform the player is built for. Empty means this machine.

  • public string Variant

    Which of doc 17's variants it is built as.

  • public string OutputPath

    Where the artefact goes. Empty means Build/<target> under the project.

  • public List<string> Scenes

    The scenes that ship, first one first.

Used by (7)

  • BuildSettingsTestsVixen.Editor.App.Tests
  • BuildSettingsViewVixen.Editor.App
  • ContentPipelineVixen.Editor.Assets
  • EditorApplicationVixen.Editor.App
  • LooseContentTestsVixen.Editor.Assets.Tests
  • SceneManifestTestsVixen.Editor.Assets.Tests
  • TypeRegistrationVixen.Editor.Core