Aracılığıyla paylaş


Kamera ayarları sağlayıcısı oluşturma — MRTK2

Kamera sistemi, platforma özgü kamera yapılandırmaları için destek sağlamaya yönelik genişletilebilir bir sistemdir. Yeni kamera yapılandırması için destek eklemek için özel ayarlar sağlayıcısı gerekebilir.

Not

Bu örnekte kullanılan kaynak kodunun tamamı MRTK/Providers/UnityAR klasöründe bulunabilir.

Ad alanı ve klasör yapısı

Veri sağlayıcıları iki yoldan biriyle dağıtılabilir:

  1. Üçüncü taraf eklentileri
  2. Microsoft Karma Gerçeklik Araç Seti'nin bir parçası

Yeni veri sağlayıcılarının MRTK'ye gönderilmesine ilişkin onay süreci, servis talebine göre değişiklik gösterir ve ilk teklif sırasında iletilecektir. Teklifler, yeni bir Özellik İsteği türü sorunu oluşturularak gönderilebilir.

Üçüncü taraf eklentileri

Ad alanı

Veri sağlayıcılarının olası ad çakışmalarını azaltmak için bir ad alanına sahip olması gerekir. Ad alanının aşağıdaki bileşenleri içermesi önerilir.

  • Eklentiyi üreten şirket adı
  • Özellik alanı

Örneğin, Contoso şirketi tarafından oluşturulan ve gönderilen bir kamera ayarları sağlayıcısı "Contoso.MixedReality.Toolkit.Camera" olabilir.

Klasör yapısı

Veri sağlayıcılarının kaynak kodunun aşağıdaki görüntüde gösterildiği gibi bir klasör hiyerarşisinde düzenlenmesi önerilir.

Örnek klasör yapısı

ContosoCamera klasörü veri sağlayıcısının uygulamasını içerdiğinde, Düzenleyici klasörü denetçiyi (ve unity düzenleyicisine özgü diğer kodları) içerir ve Profiles klasörü bir veya daha fazla önceden oluşturulmuş profil betik yazılabilir nesnesi içerir.

MRTK gönderimi

Ad alanı

Karma Gerçeklik Toolkit deposuna bir kamera ayarları sağlayıcısı gönderiliyorsa, ad alanı Microsoft.MixedReality.Toolkit (örneğin: Microsoft.MixedReality.Toolkit.CameraSystem) ile başlamalıdır.

Klasör yapısı

Tüm kodLAR MRTK/Sağlayıcılar altındaki bir klasörde bulunmalıdır (örneğin: MRTK/Providers/UnityAR).

Kamera ayarları nesnesini tanımlama

Kamera ayarları sağlayıcısı oluşturmanın ilk adımı, uygulamalara sağlayacağı veri türünü (ör. kafesler veya düzlemler) belirlemektir.

Tüm uzamsal veri nesneleri arabirimini IMixedRealityCameraSettingsProvider uygulamalıdır.

Ayarlar sağlayıcısını uygulama

Arabirim ve/veya temel sınıf devralmayı belirtme

Tüm kamera ayarları sağlayıcıları, IMixedRealityCameraSettingsProvider kamera sisteminin gerektirdiği minimum işlevselliği belirten arabirimi uygulamalıdır. MRTK temeli, gerekli işlevselliğin BaseCameraSettingsProvider varsayılan uygulamasını sağlayan sınıfını içerir.

namespace namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR
{
    public class UnityARCameraSettings : BaseCameraSettingsProvider
    { }
}

MixedRealityDataProvider özniteliğini uygulama

Kamera ayarları sağlayıcısı oluşturmanın önemli bir adımı özniteliğini MixedRealityDataProvider sınıfa uygulamaktır. Bu adım, Kamera Sistemi profilinde ve ad, klasör yolu ve daha fazlası seçildiğinde veri sağlayıcısı için varsayılan profil ve platformların ayarlanmasını sağlar.

    [MixedRealityDataProvider(
        typeof(IMixedRealityCameraSystem),
        SupportedPlatforms.Android | SupportedPlatforms.IOS,
        "Unity AR Foundation Camera Settings",
        "UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset",
        "MixedRealityToolkit.Providers")]
    public class UnityARCameraSettings : BaseCameraSettingsProvider
    { }

IMixedRealityDataProvider yöntemlerini uygulama

Sınıf tanımlandıktan sonra, bir sonraki adım arabiriminin IMixedRealityDataProvider uygulanmasını sağlamaktır.

Not

BaseDataProvider sınıfı aracılığıylaBaseService, yöntemler için IMixedRealityDataProvider boş uygulamalar sağlar. Bu yöntemlerin ayrıntıları genellikle veri sağlayıcısına özeldir.

Veri sağlayıcısı tarafından uygulanması gereken yöntemler şunlardır:

  • Destroy()
  • Disable()
  • Enable()
  • Initialize()
  • Reset()
  • Update()

Not

Tüm ayar sağlayıcıları bu yöntemlerin tümü için uygulama gerektirmez. En azından uygulanması ve Initialize() uygulanması kesinlikle önerilirDestroy().

Veri sağlayıcısı mantığını uygulama

Sonraki adım, uygulayarak ayarlar sağlayıcısının mantığını eklemektir IMixedRealityCameraSettingsProvider. Veri sağlayıcısının bu bölümü genellikle kamera yapılandırmasına özgü olur.

Profil ve denetçi oluşturma

Karma Gerçeklik Araç Seti'nde veri sağlayıcıları profiller kullanılarak yapılandırılır.

Profili tanımlama

Profil içeriği, geliştirici tarafından seçilebilen yapılandırma seçeneklerini yansıtmalıdır. Her arabirimde tanımlanan tüm kullanıcı tarafından yapılandırılabilir özellikler de profille birlikte bulunmalıdır.

using UnityEngine.SpatialTracking;

namespace namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR
{
    [CreateAssetMenu(
        menuName = "Mixed Reality Toolkit/Profiles/Unity AR Camera Settings Profile",
        fileName = "UnityARCameraSettingsProfile",
        order = 100)]
    public class UnityARCameraSettingsProfile : BaseCameraSettingsProfile
    {
        [SerializeField]
        [Tooltip("The portion of the device (ex: color camera) from which to read the pose.")]
        private ArTrackedPose poseSource = TrackedPoseDriver.TrackedPose.ColorCamera;

        /// <summary>
        /// The portion of the device (ex: color camera) from which to read the pose.
        /// </summary>
        public ArTrackedPose PoseSource => poseSource;

        [SerializeField]
        [Tooltip("The type of tracking (position and/or rotation) to apply.")]
        private ArTrackingType trackingType = TrackedPoseDriver.TrackingType.RotationAndPosition;

        /// <summary>
        /// The type of tracking (position and/or rotation) to apply.
        /// </summary>
        public ArTrackingType TrackingType => trackingType;

        [SerializeField]
        [Tooltip("Specifies when (during Update and/or just before rendering) to update the tracking of the pose.")]
        private ArUpdateType updateType = TrackedPoseDriver.UpdateType.UpdateAndBeforeRender;

        /// <summary>
        /// Specifies when (during Update and/or just before rendering) to update the tracking of the pose.
        /// </summary>
        public ArUpdateType UpdateType => updateType;
    }
}

CreateAssetMenu Öznitelik, müşterilerinVarlık>Oluştur>Karma Gerçeklik Araç Seti> Profilleri menüsünü kullanarak profil örneği oluşturmasını sağlamak içinprofil sınıfına uygulanabilir.

Denetçiyi uygulama

Profil denetçileri, profil içeriğini yapılandırmaya ve görüntülemeye yönelik kullanıcı arabirimidir. Her profil denetçisi sınıfını BaseMixedRealityToolkitConfigurationProfileInspector genişletmelidir.

özniteliği Unity'ye CustomEditor denetçinin geçerli olduğu varlığın türünü bildirir.

namespace namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR
{
    [CustomEditor(typeof(UnityARCameraSettingsProfile))]
    public class UnityARCameraSettingsProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector
    { }
}

Derleme tanımları oluşturma

Karma Gerçeklik Toolkit, bileşenler arasındaki bağımlılıkları belirtmek ve derleme süresini kısaltmak için Unity'ye yardımcı olmak için derleme tanımı (.asmdef) dosyalarını kullanır.

Tüm veri sağlayıcıları ve düzenleyici bileşenleri için derleme tanım dosyalarının oluşturulması önerilir.

Önceki örnekteki klasör yapısı kullanıldığında ContosoCamera veri sağlayıcısı için iki .asmdef dosyası olacaktır.

İlk derleme tanımı veri sağlayıcısına yöneliktir. Bu örnekte ContosoCamera olarak adlandırılır ve örneğin ContosoCamera klasöründe bulunur. Bu derleme tanımı, Microsoft.MixedReality.Toolkit'e ve bağımlı olduğu diğer derlemelere bağımlılığı belirtmelidir.

ContosoCameraEditor derleme tanımı, profil denetçisini ve herhangi bir düzenleyiciye özgü kodu belirtir. Bu dosya düzenleyici kodunun kök klasöründe bulunmalıdır. Bu örnekte, dosya ContosoCamera\Editor klasöründe bulunur. Bu derleme tanımı, ContosoCamera derlemesine bir başvuru da içerir:

  • Microsoft.MixedReality.Toolkit
  • Microsoft.MixedReality.Toolkit.Editor.Inspectors
  • Microsoft.MixedReality.Toolkit.Editor.Utilities

Veri sağlayıcısını kaydetme

Veri sağlayıcısı oluşturulduktan sonra uygulamada kullanılacak Kamera sistemine kaydedilebilir.

Kamera ayarları sağlayıcısını seçme

Paketleme ve dağıtım

Üçüncü taraf bileşenler olarak dağıtılan veri sağlayıcıları, geliştiricinin tercihine bırakılan paketleme ve dağıtımla ilgili belirli ayrıntılara sahiptir. Büyük olasılıkla en yaygın çözüm bir .unitypackage oluşturmak ve Unity Varlık Deposu aracılığıyla dağıtmaktır.

Microsoft Karma Gerçeklik Toolkit paketinin bir parçası olarak bir veri sağlayıcısı gönderilir ve kabul edilirse, Microsoft MRTK ekibi bunu MRTK tekliflerinin bir parçası olarak paketleyip dağıtır.

Ayrıca bkz.