Создание для QNX из командной строки
Чтобы собрать проект Unity для системы QNX из интерфейса командной строки (CLI), на хосте сборки должен быть установлен Unity Editor. Хост сборки должен работать под управлением Linux, и на нём также должен быть установлен QNX SDK. Подробнее см. Установка Unity Editor для QNX.
В следующем примере используется вариант исполняемого файла Linux (Unity), но его можно заменить эквивалентным исполняемым файлом для операционной системы выбранного узла сборки.
Аргументы командной строки
Предварительные условия
Убедитесь, что вы выполнили следующие инструкции перед построением проекта с помощью командной строки:
- Настройка
QNX_TARGETиQNX_HOSTпо Установка Unity Editor для QNX.
Чтобы дать указание Unity начать работу в режиме CLI и построить проект в <path-to-unity-project-root> для QNX, запустите следующую команду:
Unity -quit -batchmode -nographics -buildTarget QNX -executeMethod Builder.Build -projectPath <path-to-unity-project-root>
Процесс сборки также вызывает функцию Builder.Build для продолжения настройки сборки.
Скрипт сборки
Вы можете добавить примерный скрипт сборки в Assets/Editor/ для проекта, который вы строите из командной строки. Используйте -executeMethod возможность вызвать Build() метод этого класса, который задаёт параметры сборки и запускает её.
Для получения дополнительной информации, см. BuildPipeline.BuildPlayer documentation.
using UnityEditor;
using UnityEditor.Build.Reporting;
using UnityEngine;
public class Builder
{
private static void BuildQNX(QNXOsVersion qnxVersion, QNXArchitecture architecture)
{
// Set QNX version in BuildSettings
EditorUserBuildSettings.selectedQnxOsVersion = qnxVersion;
// Set architecture in BuildSettings
EditorUserBuildSettings.selectedQnxArchitecture = 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 = "../QNXPlayer/",
options = BuildOptions.CleanBuildCache | BuildOptions.StrictMode,
target = BuildTarget.QNX
};
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 QNX 7.1 ARM64 Unity player
BuildQNX(QNXOsVersion.Neutrino71, QNXArchitecture.Arm64);
}
}