コマンドラインインターフェース (CLI) で埋め込み Linux システム用の Unity プロジェクトをビルドするには、Unity エディターをビルドホストにインストールする必要があります。ビルドホストは、Linux、Windows、または macOS マシンにすることができます。
以下の例では、Linux バリアントの実行ファイル (Unity) を使用していますが、好みのビルドホストの OS 用の同等の実行ファイルに置き換えることができます。
Unity に、CLI モードで開始し、<path-to-unity-project-root> に埋め込み Linux 用のプロジェクトをビルドするように指示するには、以下のコマンドを実行します。
Unity -quit -batchmode -nographics -buildTarget EmbeddedLinux -executeMethod Builder.Build -projectPath <path-to-unity-project-root>
ビルドプロセスは、Builder.Build 関数も呼び出してビルド設定プロセスを続行します。
コマンドラインから、ビルドするプロジェクトにサンプルビルドスクリプト Assets/Editor/ を追加できます。-executeMethod オプションを使用して、このクラスの Build() メソッドを呼び出します。これにより、ビルドオプションが設定され、ビルドがトリガーされます。
詳細については、BuildPipeline.BuildPlayer API のドキュメント を参照してください。
using UnityEditor;
using UnityEditor.Build.Reporting;
using UnityEngine;
public class Builder
{
private static void BuildEmbeddedLinux(EmbeddedLinuxArchitecture architecture)
{
// Set architecture in BuildSettings
EditorUserBuildSettings.selectedEmbeddedLinuxArchitecture = architecture;
// Setup build options (e.g. scenes, build output location)
var options = new BuildPlayerOptions
{
// Change to scenes from your project
scenes = new[]
{
"Assets/Scenes/SampleScene.unity",
},
// Change to location the output should go
locationPathName = "../EmbeddedLinuxPlayer/",
options = BuildOptions.CleanBuildCache | BuildOptions.StrictMode,
target = BuildTarget.EmbeddedLinux
};
var report = BuildPipeline.BuildPlayer(options);
if (report.summary.result == BuildResult.Succeeded)
{
Debug.Log($"Build successful - Build written to {options.locationPathName}");
}
else if (report.summary.result == BuildResult.Failed)
{
Debug.LogError($"Build failed");
}
}
// This function will be called from the build process
public static void Build()
{
// Build EmbeddedLinux ARM64 Unity player
BuildEmbeddedLinux(EmbeddedLinuxArchitecture.Arm64);
}
}