// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using Microsoft.MixedReality.Toolkit.Utilities; using System; using UnityEngine; namespace Microsoft.MixedReality.Toolkit.SpatialAwareness { [Serializable] public struct MixedRealitySpatialObserverConfiguration : IMixedRealityServiceConfiguration { [SerializeField] [Implements(typeof(IMixedRealitySpatialAwarenessObserver), TypeGrouping.ByNamespaceFlat)] private SystemType componentType; /// public SystemType ComponentType => componentType; [SerializeField] private string componentName; /// public string ComponentName => componentName; [SerializeField] private uint priority; /// public uint Priority => priority; [SerializeField] [EnumFlags] private SupportedPlatforms runtimePlatform; /// public SupportedPlatforms RuntimePlatform => runtimePlatform; [SerializeField] private BaseSpatialAwarenessObserverProfile observerProfile; /// public BaseMixedRealityProfile Profile => observerProfile; /// /// Spatial Observer specific configuration profile. /// public BaseSpatialAwarenessObserverProfile ObserverProfile => observerProfile; /// /// Constructor. /// /// The of the observer. /// The friendly name of the observer. /// The load priority of the observer. /// The runtime platform(s) supported by the observer. /// The configuration profile for the observer. public MixedRealitySpatialObserverConfiguration( SystemType componentType, string componentName, uint priority, SupportedPlatforms runtimePlatform, BaseSpatialAwarenessObserverProfile configurationProfile) { this.componentType = componentType; this.componentName = componentName; this.priority = priority; this.runtimePlatform = runtimePlatform; this.observerProfile = configurationProfile; } } }