/// Lazy-init settings based on profile. /// This cannot happen in the constructor because the profile may not exist yet. private void EnsureProfileSettings() { if (initializedFromProfile) { return; } initializedFromProfile = true; MixedRealityGesturesProfile gestureProfile = null; MixedRealityInputSystemProfile inputSystemProfile = CoreServices.InputSystem?.InputSystemProfile; if (inputSystemProfile != null) { gestureProfile = inputSystemProfile.GesturesProfile; } if (gestureProfile != null) { for (int i = 0; i < gestureProfile.Gestures.Length; i++) { var gesture = gestureProfile.Gestures[i]; switch (gesture.GestureType) { case GestureInputType.Hold: holdAction = gesture.Action; break; case GestureInputType.Manipulation: manipulationAction = gesture.Action; break; case GestureInputType.Navigation: navigationAction = gesture.Action; break; case GestureInputType.Select: selectAction = gesture.Action; break; } } useRailsNavigation = gestureProfile.UseRailsNavigation; } MixedRealityInputSimulationProfile inputSimProfile = CoreServices.GetInputSystemDataProvider <IInputSimulationService>()?.InputSimulationProfile; if (inputSimProfile != null) { holdStartDuration = inputSimProfile.HoldStartDuration; navigationStartThreshold = inputSimProfile.NavigationStartThreshold; } }
private void UpdatePointers() { MixedRealityInputSystemProfile profile = ConfigurationProfile as MixedRealityInputSystemProfile; if (profile == null) { return; } ReconcilePointers(); int pointerCount = 0; foreach (var pointerMediator in pointerMediators) { pointerMediator.Value.UpdatePointers(); } foreach (var pointer in pointers) { UpdatePointer(pointer); var pointerProfile = profile.PointerProfile; if (pointerProfile != null && pointerProfile.DebugDrawPointingRays) { MixedRealityRaycaster.DebugEnabled = pointerProfile.DebugDrawPointingRays; Color rayColor; if ((pointerProfile.DebugDrawPointingRayColors != null) && (pointerProfile.DebugDrawPointingRayColors.Length > 0)) { rayColor = pointerProfile.DebugDrawPointingRayColors[pointerCount++ % pointerProfile.DebugDrawPointingRayColors.Length]; } else { rayColor = Color.green; } if (!pointer.Pointer.IsActive) { // Only draw pointers that are currently active, but make sure to // increment color even if pointer is disabled so that the color for e.g. the // sphere pointer or the poke pointer remains consistent. continue; } Debug.DrawRay(pointer.StartPoint, (pointer.Details.Point - pointer.StartPoint), rayColor); } } }
private void UpdatePointers() { MixedRealityInputSystemProfile profile = ConfigurationProfile as MixedRealityInputSystemProfile; if (profile == null) { return; } ReconcilePointers(); int pointerCount = 0; foreach (var pointerMediator in pointerMediators) { pointerMediator.Value.UpdatePointers(); } foreach (var pointer in pointers) { UpdatePointer(pointer); var pointerProfile = profile.PointerProfile; if (pointerProfile != null && pointerProfile.DebugDrawPointingRays) { MixedRealityRaycaster.DebugEnabled = pointerProfile.DebugDrawPointingRays; Color rayColor; if ((pointerProfile.DebugDrawPointingRayColors != null) && (pointerProfile.DebugDrawPointingRayColors.Length > 0)) { rayColor = pointerProfile.DebugDrawPointingRayColors[pointerCount++ % pointerProfile.DebugDrawPointingRayColors.Length]; } else { rayColor = Color.green; } Debug.DrawRay(pointer.StartPoint, (pointer.Details.Point - pointer.StartPoint), rayColor); } } }
/// <summary> /// Constructor. /// </summary> /// <param name="profile">The configuration profile for the service.</param> public DefaultRaycastProvider( MixedRealityInputSystemProfile profile) : base(profile) { }
public DefaultRaycastProvider( IMixedRealityServiceRegistrar registrar, MixedRealityInputSystemProfile profile) : this(profile) { Registrar = registrar; }
public RemoteFocusProviderNoCollider( MixedRealityInputSystemProfile profile) : base(profile) { _localFocusProvider = new FocusProvider(profile); }
public DefaultRaycastProvider( IMixedRealityServiceRegistrar registrar, MixedRealityInputSystemProfile profile) : base(registrar, profile) { }
public FocusProvider( IMixedRealityServiceRegistrar registrar, IMixedRealityInputSystem inputSystem, MixedRealityInputSystemProfile profile) : base(registrar, inputSystem, null, DefaultPriority, profile) { }