CLI(커맨드 라인 인터페이스)에서 임베디드 Linux 시스템용 Unity 프로젝트를 빌드하려면 Unity 에디터를 빌드 호스트에 설치해야 합니다. 빌드 호스트는 Linux, Windows, macOS 컴퓨터가 될 수 있습니다.
다음 예시에서는 실행 파일(Unity)의 Linux 배리언트를 사용하지만, 이는 원하는 빌드 호스트의 운영체제에 해당하는 실행 파일로 대체할 수 있습니다.
다음 커맨드를 실행하여 Unity가 CLI 모드로 시작하고 임베디드 Linux용 <path-to-unity-project-root>에서 프로젝트를 빌드하도록 명령합니다.
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);
}
}