Aracılığıyla paylaş


3B uygulama başlatıcıları uygulama (UWP uygulamaları)

Not

Bu özellik, çevreleyici başlıklar için 2017 Fall Creators Update'in (RS3) bir parçası olarak eklendi ve Windows 10 Nisan 2018 Güncelleştirmesi ile HoloLens tarafından destekleniyor. Uygulamanızın windows SDK'sının 10.0.16299'dan büyük veya buna eşit bir sürümünü çevreleyici Mikrofonlu Kulaklıklarda ve HoloLens'te 10.0.17125 sürümünü hedeflediğinden emin olun. En son Windows SDK'sını burada bulabilirsiniz.

Windows Mixed Reality giriş sayfası, kullanıcıların uygulamaları başlatmadan önce indiği başlangıç noktasıdır. Windows Mixed Reality için bir UWP uygulaması oluştururken varsayılan olarak uygulamalar, uygulamalarının logosuyla 2B sayfa olarak başlatılır. Windows Mixed Reality için deneyimler geliştirirken, uygulamanız için varsayılan 2B başlatıcıyı geçersiz kılmak üzere isteğe bağlı olarak bir 3B başlatıcı tanımlanabilir. Genel olarak, kullanıcıları Windows Mixed Reality giriş Windows Mixed Reality alan çevreleyici uygulamaların başlatılması için 3B başlatıcılar önerilir. Uygulama yerinde etkinleştirildiğinde varsayılan 2B başlatıcı tercih edilir. Ayrıca, 2B UWP uygulamasındaki içeriğe 3B başlatıcı olarak bir 3B derin bağlantı (secondaryTile) oluşturabilirsiniz.

3B uygulama başlatıcı oluşturma işlemi

3B uygulama başlatıcı oluşturmanın üç adımı vardır:

  1. Tasarım ve kavram oluşturma
  2. Modelleme ve dışarı aktarma
  3. Uygulamanıza tümleştirme (bu makale)

Uygulamanız için başlatıcı olarak kullanılacak 3B varlıklar, uyumluluğu sağlamak için Windows Mixed Reality yazma yönergeleri kullanılarak yazılmalıdır. Bu yazma belirtimini karşılayemeyen varlıklar Windows Mixed Reality girişte işlenmez.

3B başlatıcıyı yapılandırma

Visual Studio'da yeni bir proje oluşturduğunuzda, uygulamanızın adını ve logosunu görüntüleyen basit bir varsayılan kutucuk oluşturulur. Bu 2B gösterimi özel bir 3B modelle değiştirmek için uygulamanızın uygulama bildirimini düzenleyerek varsayılan kutucuk tanımınıza "MixedRealityModel" öğesini ekleyin. 2B başlatıcıya geri dönmek için bildirimden MixedRealityModel tanımını kaldırmanız gerekir.

XML

İlk olarak, geçerli projenizde uygulama paketi bildirimini bulun. Varsayılan olarak, bildirim Package.appxmanifest olarak adlandırılır. Visual Studio kullanıyorsanız çözüm görüntüleyicinizdeki bildirime sağ tıklayın ve Kaynağı görüntüle'yi seçerek xml dosyasını düzenlemek üzere açın.

Bildirimin en üstüne uap5 şemasını ekleyin ve yoksayılabilir bir ad alanı olarak ekleyin:

<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
         xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" 
         xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
         IgnorableNamespaces="uap uap2 uap5 mp"
         xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

Ardından uygulamanızın varsayılan kutucuğunda "MixedRealityModel" değerini belirtin:

<Applications>
    <Application Id="App"
      Executable="$targetnametoken$.exe"
      EntryPoint="ExampleApp.App">
      <uap:VisualElements
        DisplayName="ExampleApp"
        Square150x150Logo="Assets\Logo.png"
        Square44x44Logo="Assets\SmallLogo.png"
        Description="ExampleApp"
        BackgroundColor="#464646">
        <uap:DefaultTile Wide310x150Logo="Assets\WideLogo.png" >
          <uap5:MixedRealityModel Path="Assets\My3DTile.glb" />
        </uap:DefaultTile>
        <uap:SplashScreen Image="Assets\SplashScreen.png" />
      </uap:VisualElements>
    </Application>
</Applications>

MixedRealityModel öğesi, uygulama paketinizde depolanan 3B varlığa işaret eden bir dosya yolunu kabul eder. Şu anda yalnızca .glb dosya biçimi kullanılarak teslim edilen ve Windows Mixed Reality 3B varlık yazma yönergelerine göre yazılan 3B modeller desteklenmektedir. Varlıklar uygulama paketinde depolanmalıdır ve animasyon şu anda desteklenmemektedir. "Path" parametresi boş bırakılırsa Windows, 3B başlatıcı yerine 2B sayfayı gösterir. Not: Uygulamanızı derlemeden ve çalıştırmadan önce derleme ayarlarınızda .glb varlığı "İçerik" olarak işaretlenmelidir.

Çözüm gezgininizde .glb'yi seçin ve özellikler bölümünü kullanarak derleme ayarlarında
Çözüm gezgininizde .glb'yi seçin ve özellikler bölümünü kullanarak derleme ayarlarında "İçerik" olarak işaretleyin

Sınırlayıcı kutu

İsteğe bağlı olarak nesnenin çevresine fazladan bir arabellek bölgesi eklemek için sınırlayıcı kutu kullanılabilir. Sınırlayıcı kutu, sınırlayıcı kutunun ortasından her eksen boyunca kenarlarına olan uzaklığı gösteren bir merkez noktası ve kapsamlar kullanılarak belirtilir. Sınırlayıcı kutunun birimleri 1 birim = 1 metreye eşlenebilir. Sınırlayıcı bir kutu sağlanmazsa, nesnenin ağı otomatik olarak bir tane uydurulacaktır. Sağlanan sınırlayıcı kutu modelden küçükse, mesh'e sığacak şekilde yeniden boyutlandırılır.

Sınırlayıcı kutu özniteliği desteği, MixedRealityModel öğesinde bir özellik olarak Windows RS4 güncelleştirmesi ile birlikte gelir. Uygulama bildiriminin en üstünde önce sınırlayıcı bir kutu tanımlamak için uap6 şemasını ekleyin ve yoksayılabilir ad alanları olarak ekleyin:

<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
         xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" 
         xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
         xmlns:uap6="http://schemas.microsoft.com/appx/manifest/uap/windows10/6"
         IgnorableNamespaces="uap uap2 uap5 uap6 mp"
         xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

Ardından, MixedRealityModel üzerinde SpatialBoundingBox özelliğini sınırlayıcı kutuyu tanımlayacak şekilde ayarlayın:

        <uap:DefaultTile Wide310x150Logo="Assets\WideLogo.png" >
          <uap5:MixedRealityModel Path="Assets\My3DTile.glb">
              <uap6:SpatialBoundingBox  Center=”1,-2,3” Extents=”1,2,3” />
          </uap5:MixedRealityModel>
        </uap:DefaultTile>

Unity kullanma

Unity ile çalışırken, Uygulama Bildiriminin düzenlenebilmesi için önce projenin Visual Studio'da derlenip açılması gerekir.

Not

Unity'den yeni bir Visual Studio çözümü derlenip dağıtılırken bildirimde 3B başlatıcı yeniden tanımlanmalıdır.

Not

Bu özellik, çevreleyici (VR) mikrofonlu kulaklıklar için 2017 Fall Creators Update (RS3) ve HoloLens için Nisan 2018 Güncelleştirmesi(RS4) kapsamında eklendi. Uygulamanızın çevreleyici (VR) kulaklıklarda 10.0.16299 veya daha büyük bir Windows SDK sürümünü ve HoloLens'te 10.0.17125 sürümünü hedeflediğinden emin olun. En son Windows SDK'sını burada bulabilirsiniz.

Önemli

3B derin bağlantılar (secondaryTiles) yalnızca 2B UWP uygulamalarıyla çalışır. Ancak, Windows Mixed Reality giriş Windows Mixed Reality özel bir uygulama başlatmak için bir 3B uygulama başlatıcı oluşturabilirsiniz.

2B uygulamalarınız, Windows Başlat menüsündeki 2B ikincil kutucuklar gibi 2B uygulamanızdaki içeriğe ayrıntılı bağlantılar olarak uygulamanızdan Windows Mixed Reality girişine 3B modeller yerleştirme özelliği ekleyerek Windows Mixed Reality için geliştirilebilir. Örneğin, doğrudan 360° fotoğraf görüntüleyici uygulamasına bağlanan 360° fotoğraf küreleri oluşturabilir veya kullanıcıların yazarla ilgili ayrıntılar sayfasını açan bir varlık koleksiyonundan 3B içerik yerleştirmesini sağlayabilirsiniz. Bunlar, 2B uygulamanızın işlevselliğini 3B içerikle genişletmenin yalnızca birkaç yolu.

3B "secondaryTile" oluşturma

Oluşturma zamanında karma gerçeklik modeli tanımlayarak "secondaryTiles" kullanarak uygulamanızdan 3B içerik yerleştirebilirsiniz. Karma gerçeklik modelleri, uygulama paketinizdeki bir 3B varlığa başvurularak ve isteğe bağlı olarak sınırlayıcı bir kutu tanımlanarak oluşturulur.

Not

Özel görünümden "secondaryTiles" oluşturulması şu anda desteklenmemektedir.

using Windows.UI.StartScreen;
using Windows.Foundation.Numerics;
using Windows.Perception.Spatial;

// Initialize the tile
SecondaryTile tile = new SecondaryTile("myTileId")
{
    DisplayName = "My Tile",
    Arguments = "myArgs"
};

tile.VisualElements.Square150x150Logo = new Uri("ms-appx:///Assets/MyTile/Square150x150Logo.png");

//Assign 3D model (only ms-appx and ms-appdata are allowed)
TileMixedRealityModel model = tile.VisualElements.MixedRealityModel;
model.Uri = new Uri("ms-appx:///Assets/MyTile/MixedRealityModel.glb");
model.ActivationBehavior = TileMixedRealityModelActivationBehavior.Default;
model.BoundingBox = new SpatialBoundingBox
{
    Center = new Vector3 { X = 1, Y = 0, Z = 0 },
    Extents = new Vector3 { X = 3, Y = 5, Z = 4 }
};

// And place it
await tile.RequestCreateAsync();

Sınırlayıcı kutu

Sınırlayıcı kutu, nesnenin çevresine fazladan bir arabellek bölgesi eklemek için kullanılabilir. Sınırlayıcı kutu, sınırlayıcı kutunun ortasından her eksen boyunca kenarlarına olan uzaklığı gösteren bir merkez noktası ve kapsamlar kullanılarak belirtilir. Sınırlayıcı kutunun birimleri 1 birim = 1 metreye eşlenebilir. Sınırlayıcı bir kutu sağlanmazsa, nesnenin a mesh'ine otomatik olarak bir kutu uydurulacaktır. Sağlanan sınırlayıcı kutu modelden küçükse, ağa sığacak şekilde yeniden boyutlandırılır.

Etkinleştirme davranışı

Not

Bu özellik Windows RS4 güncelleştirmesi itibarıyla desteklenecektir. Bu özelliği kullanmayı planlıyorsanız, uygulamanızın Windows SDK'sının 10.0.17125 veya daha büyük bir sürümünü hedeflediğinden emin olun

Bir kullanıcı seçtiğinde nasıl tepki gösterebileceğini denetlemek için 3B secondaryTile için etkinleştirme davranışını tanımlayabilirsiniz. Bu, tamamen bilgilendirici veya dekoratif olan 3B nesneleri Karma Gerçeklik eve yerleştirmek için kullanılabilir. Aşağıdaki etkinleştirme davranışı türleri desteklenir:

  1. Varsayılan: Kullanıcı 3B ikincil öğesini seçtiğinde Uygulama etkinleştirilir
  2. Hiçbiri: Kullanıcı 3B secondaryTile öğesini seçtiğinde hiçbir şey olmaz ve uygulama etkinleştirilmez.

Mevcut bir "secondaryTile" alma ve güncelleştirme

Geliştiriciler, önceden belirtdikleri özellikleri içeren mevcut ikincil kutucuklarının listesini geri alabilir. Ayrıca, değeri değiştirip UpdateAsync() öğesini çağırarak da özellikleri güncelleştirebilirler.

// Grab the existing secondary tile
SecondaryTile tile = (await SecondaryTile.FindAllAsync()).First();

Uri updatedUri = new Uri("ms-appdata:///local/MixedRealityUpdated.glb");

// See if the model needs updating
if (!tile.VisualElements.MixedRealityModel.Uri.Equals(updatedUri))
{
    // Update it
    tile.VisualElements.MixedRealityModel.Uri = updatedUri;

    // And apply the changes
    await tile.UpdateAsync();
}

Kullanıcının Windows Mixed Reality

3B derin bağlantılar (secondaryTiles) yalnızca görünüm bir Windows Mixed Reality başlığında görüntülenirken oluşturulabilir. Görünümünüz bir Windows Mixed Reality başlığında gösterilmiyorsa, giriş noktasını gizleyerek veya bir hata iletisi göstererek bunu düzgün bir şekilde işlemenizi öneririz. Bunu denetlemek için IsCurrentViewPresentedOnHolographic() sorgulayabilirsiniz.

Kutucuk bildirimleri

Kutucuk bildirimleri şu anda 3B varlıkla güncelleştirme göndermeyi desteklememektedir. Bu, geliştiricilerin aşağıdakileri yapamamaları anlamına gelir:

  • Anında İletme Bildirimleri
  • Düzenli Yoklama
  • Zamanlanmış Bildirimler

Diğer kutucuk özellikleri ve öznitelikleri ve bunların 2B kutucuklar için nasıl kullanıldığı hakkında daha fazla bilgi için UWP Uygulamaları için Kutucuklar belgelerine bakın.

Ayrıca bkz.