void OnSceneLoaded(Scene scene, LoadSceneMode mode) { // assign references if (_HUDNavigationSystem == null) { _HUDNavigationSystem = HUDNavigationSystem.Instance; // check if HUDNavigationSystem exists if (_HUDNavigationSystem == null) { Debug.LogError("HUDNavigationSystem not found in scene!"); this.enabled = false; return; } } // return if HUDNavigationSystem is not initialized (yet) if (_HUDNavigationSystem == null) { return; } // return if no configuration is assigned if (Configurations.Count <= 0) { return; } // get configuration matching currently active scene Configuration config = Configurations.Where(c => c._Scene != null && c._Config != null && c._Scene.path.Equals(scene.path)).FirstOrDefault(); if (config._Config == null) { return; } // apply configuration HNSSceneConfiguration sceneConfig = config._Config; _HUDNavigationSystem.ApplySceneConfiguration(sceneConfig); }
/// <summary> /// Applies a new scene configuration. /// </summary> /// <param name="config">Scene Configuration.</param> public void ApplySceneConfiguration(HNSSceneConfiguration config) { if (config == null) { return; } // override radar settings if (config.overrideRadarSettings) { // radar usage changed? if (_HUDNavigationCanvas != null && this.useRadar != config.useRadar) { _HUDNavigationCanvas.ShowRadar(config.useRadar); } this.useRadar = config.useRadar; this.radarMode = config.radarMode; this.radarZoom = config.radarZoom; this.radarRadius = config.radarRadius; this.radarMaxRadius = config.radarMaxRadius; this.useRadarHeightSystem = config.useRadarHeightSystem; this.radarDistanceAbove = config.radarDistanceAbove; this.radarDistanceBelow = config.radarDistanceBelow; } // override compass bar settings if (config.overrideCompassBarSettings) { // compass bar usage changed? if (_HUDNavigationCanvas != null && this.useCompassBar != config.useCompassBar) { _HUDNavigationCanvas.ShowCompassBar(config.useCompassBar); } this.useCompassBar = config.useCompassBar; this.compassBarRadius = config.compassBarRadius; } // override indicator settings if (config.overrideIndicatorSettings) { // indicator usage changed? if (_HUDNavigationCanvas != null && this.useIndicators != config.useIndicators) { _HUDNavigationCanvas.ShowIndicators(config.useIndicators); } this.useIndicators = config.useIndicators; this.indicatorRadius = config.indicatorRadius; this.indicatorHideDistance = config.indicatorHideDistance; this.useOffscreenIndicators = config.useOffscreenIndicators; this.indicatorOffscreenBorder = config.indicatorOffscreenBorder; this.useIndicatorScaling = config.useIndicatorScaling; this.indicatorScaleRadius = config.indicatorScaleRadius; this.indicatorMinScale = config.indicatorMinScale; this.useIndicatorFading = config.useIndicatorFading; this.indicatorFadeRadius = config.indicatorFadeRadius; this.indicatorMinFade = config.indicatorMinFade; } // override minimap settings if (config.overrideMinimapSettings) { // assign new minimap profile if (this.currentMinimapProfile != config.minimapProfile) { this.currentMinimapProfile = config.minimapProfile; if (_HUDNavigationCanvas != null) { _HUDNavigationCanvas.SetMinimapProfile(this.currentMinimapProfile); } } // minimap usage changed? if (_HUDNavigationCanvas != null && this.useMinimap != config.useMinimap) { _HUDNavigationCanvas.ShowMinimap(config.useMinimap); } this.useMinimap = config.useMinimap; this.minimapMode = config.minimapMode; this.minimapScale = config.minimapScale; this.minimapRadius = config.minimapRadius; this.showMinimapBounds = config.showMinimapBounds; this.useMinimapHeightSystem = config.useMinimapHeightSystem; this.minimapDistanceAbove = config.minimapDistanceAbove; this.minimapDistanceBelow = config.minimapDistanceBelow; } }