Legacy Documentation: Version 5.1
AppCallbacks class
Windows Store Apps: Missing .NET Types

Windows Store Apps: WinRT API in C# scripts

It is possible to use WinRT API directly in Unity scripts. However there are limitations and requirements for this:

  • Scripts must be written in C#, it’s not possible to use WinRT API from UnityScript
  • Scripts must be compiled using Microsoft’s compiler, not Mono. This requires to set compilation overrides to Use .NET Core or Use .NET Core Partially, in the later case scripts must not be under Plugins or Standard Assets folders
  • Because the same script code is also used by Unity Editor (which always uses Mono), all code that uses WinRT API must be under NETFX_CORE define

Note, that NETFX_CORE is defined by Visual Studio when compiling code for Windows Store Apps, so it can be used in any C# code, not just Unity scripts.

Bellow is an example for getting advertising is using WinRT API directly:

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
    }
}
AppCallbacks class
Windows Store Apps: Missing .NET Types