18 [Tooltip(
"The quality level where the viewport will be at full size.")]
19 private int FullSizeQualityLevel = 5;
22 [Tooltip(
"The quality level where the viewport will be at Min Viewport Size.")]
23 private int MinSizeQualityLevel = -5;
26 [Tooltip(
"Percentage size of viewport when quality is at Min Size Quality Level.")]
27 private float MinViewportSize = 0.5f;
32 public float CurrentScale {
get;
private set; }
34 private void OnEnable()
38 Debug.Assert(qualityController != null,
"The AdpativeViewport needs a connection to a AdaptiveQuality component.");
41 if (qualityController)
48 private void OnDisable()
50 if (qualityController)
55 #if UNITY_2017_2_OR_NEWER 56 UnityEngine.XR.XRSettings.renderViewportScale = 1.0f;
58 UnityEngine.VR.VRSettings.renderViewportScale = 1.0f;
64 #if UNITY_2017_2_OR_NEWER 65 UnityEngine.XR.XRSettings.renderViewportScale = CurrentScale;
67 UnityEngine.VR.VRSettings.renderViewportScale = CurrentScale;
71 private void QualityChangedEvent(
int newQuality,
int previousQuality)
73 SetScaleFromQuality(newQuality);
76 private void SetScaleFromQuality(
int quality)
79 int clampedQuality = Mathf.Clamp(quality, MinSizeQualityLevel, FullSizeQualityLevel);
82 float lerpVal = Mathf.InverseLerp(MinSizeQualityLevel, FullSizeQualityLevel, clampedQuality);
83 CurrentScale = Mathf.Lerp(MinViewportSize, 1.0f, lerpVal);