LoginSignup
3
4

More than 5 years have passed since last update.

Unity5.4からBuildPipeline.BuildPlayerメソッドにEditorBuildSettingsScene[]なオーバーロードが加わった

Posted at

多くの新機能が追加されたUnity5.4。待ちに待ったUnity5.4。

そんなUnity5.4では、BuildPipelineクラスのBuildPlayerメソッドに、EditorBuildSettingsSceneの配列を引数にとるものが追加さました。

apkやXcode Projectなどのビルド成果物を生成するBuildPipelineクラスのBuildPlayerメソッドは、Unity5.4以前では、次のように書く必要がありました。

// ビルド対象シーンのパスの配列
string[] scenes = EditorBuildSettings
    .scenes
    .Where(it => it.enabled)
    .Select(it => it.path)
    .ToArray();

// 先のビルド対象シーンのパスの配列を引数にとるBuildPipeline.BuildPlayerメソッド
string errorMessage = BuildPipeline.BuildPlayer(
    levels: scenes,
    locationPathName: outputPath,
    target: BuildTarget.Android,
    options: BuildOptions.None);

BuildPipeline.BuildPlayerには、ビルド対象のシーンのパスを渡す必要がありました。EditorBuildSettings.scenesプロパティは、EditorBuildSettingsSceneの配列型なので、それをパスに変換する必要がありました。普通にEditorBuildSettingsSceneの配列を渡したくないですか?

Unity5.4からBuildPipeline.BuildPlayerメソッドにEditorBuildSettingsScene[]なオーバーロードが加わったので、次のように記述することができます。

// ビルド対象シーンの配列
EditorBuildSettingsScene[] scenes = EditorBuildSettings
    .scenes
    .Where(it => it.enabled)
    .ToArray();

// 先のビルド対象シーンの配列を引数にとるBuildPipeline.BuildPlayerメソッド
string errorMessage = BuildPipeline.BuildPlayer(
    levels: scenes,
    locationPathName: outputPath,
    target: BuildTarget.Android,
    options: BuildOptions.None);

地味な改良ですが、うれしいですね。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4