Sdílet prostřednictvím


Rozhraní WINRT API s Unity pro HoloLens

Tato stránka popisuje, jak využít rozhraní WinRT API v projektu Unity pro HoloLens.

rozhraní API Mixed Reality

V projekci kompatibilní s .NET Standard 2.0 byla zpřístupněna podmnožina sady Windows SDK zaměřená na Mixed Reality, kterou můžete použít v projektu bez direktiv preprocesoru. Většina rozhraní API v oborech názvů Windows.Perception a Windows.UI.Input.Spatial je zahrnutá a v budoucnu se můžou rozšířit o další rozhraní API. Předpokládané rozhraní API je možné použít při spuštění v editoru, který umožňuje použití režimu přehrávání. Pokud chcete tuto projekci použít, proveďte v projektu následující změny:

  1. Přidejte odkaz na balíček UPM Mixed Reality WinRT Projections pomocí nástroje Mixed Reality Feature Tool.

    Seznam Mixed Reality balíčku WinRT Projections v hlavičce Podpora platformy v nástroji Mixed Reality Feature Tool.

  2. Předpona odkazuje na Windows obor názvů pomocí Microsoft.:

    using namespace Microsoft.Windows.Perception.Spatial;
    

    Poznámka

    Import tohoto balíčku může způsobit problémy s řešením oboru názvů, pokud váš projekt obsahuje vložené odkazy na libovolný Windows.* obor názvů, přičemž kompilátor se pokouší problém vyřešit s odpovídajícím Microsoft.Windows.* oborem názvů. V takovém případě se doporučuje buď tyto odkazy aktualizovat tak, aby používaly global::Windows.* , nebo tyto skripty aktualizovat a importovat konkrétní Windows.* obor názvů jako příkaz using .

  3. Nahraďte nativní přetypování ukazatele za FromNativePtr:

    var worldOrigin = SpatialCoordinateSystem.FromNativePtr(unityWorldOriginPtr);
    

Podmíněné zahrnutí volání rozhraní API WinRT

Rozhraní WinRT API můžete také použít v projektech Unity vytvořených pro platformu Univerzální platforma Windows a Xbox One pomocí direktiv preprocesoru. Veškerý kód, který napíšete ve skriptech Unity, které cílí na rozhraní WinRT API, musí být podmíněně zahrnutý jenom pro tato sestavení.

Můžete to provést dvěma kroky v Unity:

  1. Úroveň kompatibility rozhraní API musí být v nastavení přehrávače nastavená na .NET 4.6 nebo .NET Standard 2.0 .
    • Upravit>Nastavení> projektuHráč>Konfigurace>Úroveň kompatibility rozhraní API pro .NET 4.6 nebo .NET Standard 2.0
  2. Direktiva preprocesoru ENABLE_WINMD_SUPPORT musí být zabalená kolem jakéhokoli kódu, který využívá WinRT.

Následující fragment kódu pochází z ruční stránky Unity pro Univerzální platforma Windows: WinRT API ve skriptech jazyka C#. V tomto příkladu se vrátí reklamní ID, ale jenom v buildech UPW a Xbox One:

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
    }
}

Úprava skriptů v projektu Unity C#

Po poklikání na skript v editoru Unity se skript ve výchozím nastavení spustí v projektu editoru. Rozhraní WINRT API se budou zdát neznámá, protože projekt sady Visual Studio neodkazuje na prostředí Windows Runtime. Direktiva ENABLE_WINMD_SUPPORT není definována a všechny #if zabalené kódy jsou ignorovány, dokud projekt nevytvoříte do řešení pro UPW v sadě Visual Studio.

Viz také