// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using Microsoft.MixedReality.Toolkit.Utilities; using System; using UnityEngine; namespace Microsoft.MixedReality.Toolkit { /// /// Defines a system, feature, or manager to be registered with as a on startup. /// [Serializable] public struct MixedRealityServiceConfiguration : IMixedRealityServiceConfiguration { /// /// Constructor. /// /// The concrete type for the system, feature or manager. /// The simple, human readable name for the system, feature, or manager. /// The priority this system, feature, or manager will be initialized in. /// The runtime platform(s) to run this system, feature, or manager on. /// The configuration profile for the service. public MixedRealityServiceConfiguration( SystemType componentType, string componentName, uint priority, SupportedPlatforms runtimePlatform, BaseMixedRealityProfile configurationProfile) { this.componentType = componentType; this.componentName = componentName; this.priority = priority; this.runtimePlatform = runtimePlatform; this.configurationProfile = configurationProfile; } [SerializeField] [Implements(typeof(IMixedRealityExtensionService), 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; [EnumFlags] [SerializeField] private SupportedPlatforms runtimePlatform; /// public SupportedPlatforms RuntimePlatform => runtimePlatform; [SerializeField] private BaseMixedRealityProfile configurationProfile; /// public BaseMixedRealityProfile Profile => configurationProfile; /// /// The configuration profile for the service. /// [Obsolete("Use the Profile property instead.")] public BaseMixedRealityProfile ConfigurationProfile => configurationProfile; } }