/// <summary>
 /// Resets all cached system references to null
 /// </summary>
 public static void ResetCacheReferences()
 {
     serviceCache.Clear();
     boundarySystem         = null;
     cameraSystem           = null;
     diagnosticsSystem      = null;
     focusProvider          = null;
     inputSystem            = null;
     raycastProvider        = null;
     sceneSystem            = null;
     spatialAwarenessSystem = null;
     teleportSystem         = null;
 }
 private static void ResetCacheReferenceFromType(Type serviceType)
 {
     if (typeof(IMixedRealityBoundarySystem).IsAssignableFrom(serviceType))
     {
         boundarySystem = null;
     }
     else if (typeof(IMixedRealityCameraSystem).IsAssignableFrom(serviceType))
     {
         cameraSystem = null;
     }
     else if (typeof(IMixedRealityDiagnosticsSystem).IsAssignableFrom(serviceType))
     {
         diagnosticsSystem = null;
     }
     else if (typeof(IMixedRealityFocusProvider).IsAssignableFrom(serviceType))
     {
         focusProvider = null;
     }
     else if (typeof(IMixedRealityInputSystem).IsAssignableFrom(serviceType))
     {
         inputSystem = null;
     }
     else if (typeof(IMixedRealityRaycastProvider).IsAssignableFrom(serviceType))
     {
         raycastProvider = null;
     }
     else if (typeof(IMixedRealitySceneSystem).IsAssignableFrom(serviceType))
     {
         sceneSystem = null;
     }
     else if (typeof(IMixedRealitySpatialAwarenessSystem).IsAssignableFrom(serviceType))
     {
         sceneSystem = null;
     }
     else if (typeof(IMixedRealityTeleportSystem).IsAssignableFrom(serviceType))
     {
         teleportSystem = null;
     }
 }