WinRT API в C# скриптах для UWP
Unity поддерживает Windows Runtime (WinRT) при сборке для Universal Windows Platform со скриптовым бэкендом IL2CPP. Поддержка Windows Runtime позволяет вызывать как нативные системные API Windows Runtime, так и пользовательские файлы .winmd непосредственно из управляемых скриптов и плагинов C#.
Unity автоматически ссылается на Windows Runtime APIs, например, Windows.winmd на универсальной Windows платформе. Чтобы использовать пользовательские файлы .winmd, импортируйте их в папку проекта Unity вместе с любыми сопровождающими файлами DLLs и настройте их. Дополнительную информацию см. в Импорт и настройка плагинов.
Чтобы использовать WinRT API в своих Unity скриптах:
- Ваши скрипты должны быть написаны в C#.
- Весь код, который использует WinRT API должен быть под
ENABLE_WINMD_SUPPORTдиректива. Это необходимо потому, что Редактор использует Mono, который не поддерживает WinRT APIs.
Следующий пример кода получает рекламу ID, используя WinRT API непосредственно:
using UnityEngine;
public class WinRTAPI : MonoBehaviour
{
void Update()
{
auto adId = GetAdvertisingId();
// ...
}
string GetAdvertisingId()
{
#if ENABLE_WINMD_SUPPORT
return Windows.System.UserProfile.AdvertisingManager.AdvertisingId;
#else
return "";
#endif
}
}
Дополнительные ресурсы
- Windows ссылка на настройки сборки
- Скриптовые бэкэнды
- Документация Майкрософта на WinRT APIs с Unity для HoloLens