Примерно после выхода на вторую площадку, я автоматизировал сборку под различные платформы и площадки с помощью
BuildPipeline.BuildPlayer(buildPlayerOptions). Теперь я могу билдить под любую площадку и платформу нажатием одной кнопки.Но мне захотелось ещё больше автоматизации. Я хочу, чтобы если мой телефон подключен к компу, то сборка запускается с флагом
BuildOptions.AutoRunPlayer - то есть игра автоматически установится и запустится на телефоне.Но как определить, подключен телефон или нет? На первой странице гугла не нашлось ответа, и я обратился в ChatGPT с этим вопросом. Результат расстроил.
Unity itself does not provide a built-in API to detect whether an Android device is plugged into a PC, as Unity's scripting is primarily geared toward the game runtime environment rather than system-level interactions.
Однако, ChatGRT ошибается. Достаточно воспользоваться методом
DevDeviceList.GetDevices(), чтобы получить список всех доступных девайсов.Полный код проверки выглядит так:
private static bool IsDeviceConnected()
{
return DevDeviceList.GetDevices()
.Count(device => device is { type: "Android", state: DevDeviceState.Connected }) > 0;
}
#тайные_знания