Version: 5.6
Класс AppCallbacks
WSA Player Settings

Приложения Windows Store: WinRT API в C# скриптах

Существует возможность использования WinRT API прямо в Unity скриптах. Однако, есть ряд требований и ограничений:

  • Скрипты должны быть написаны на C#, невозможно использовать WinRT API из UnityScript или Boo
  • Скрипты должны быть скомпилированы с помощью компилятора Microsoft, не Mono. Это требует установки переопределений компиляции в “Use .NET Core” или “Use .NET Core Partially”, в последнем случае скрипты должны находиться не в папках “Plugins” или “Standard Assets”
  • Так как тот же код используется редактором Unity (который всегда использует Mono), весь код, который использует WinRT, должен быть под определением NETFX_CORE
  • If you want to use Universal Windows 10 API, use WINDOWS_UWP define.

Учтите, что NETFX_CORE определяется самой Visual Studio при компиляции кода для приложений Windows Store, так что он может быть использован в любом C# коде, не только в Unity скриптах.

Ниже представлен пример получения идентификатора рекламы напрямую с помощью WinRT API:

using UnityEngine;
public class WinRTAPI : MonoBehaviour {
    void Update() {
        auto adId = GetAdvertisingId();
        // ...
    }

    string GetAdvertisingId() {
        #if NETFX_CORE
            return Windows.System.UserProfile.AdvertisingManager.AdvertisingId;
        #else
            return "";
        #endif
    }
}

Note: this is currently supported only on .NET scripting backend.

Класс AppCallbacks
WSA Player Settings