using UnityEngine;
using UnityEngine.UI;
using UnityEngine.AdaptivePerformance;
public class ScalerVisualisation : MonoBehaviour
{
public Text Name;
public Text Value;
public Text Status;
public Slider Level;
public Toggle Override;
public Toggle EnabledToggle;
public AdaptivePerformanceScaler Scaler;
public void SetOverride()
{
if (Scaler == null)
return;
Scaler.OverrideLevel = Override.isOn ? Scaler.CurrentLevel : -1;
Level.interactable = Override.isOn;
}
public void SetEnabled()
{
if (Scaler == null)
return;
Scaler.Enabled = EnabledToggle.isOn;
}
public void SetLevel(float value)
{
if (Scaler == null)
return;
var level = (int)(value * Scaler.MaxLevel);
if (Scaler.OverrideLevel != -1)
Scaler.OverrideLevel = level;
Level.value = (float)level / Scaler.MaxLevel;
Value.text = $"{Level.value}";
}
private void Start()
{
if (Scaler == null)
return;
Name.text = Scaler.Name;
Override.isOn = Scaler.OverrideLevel != -1;
EnabledToggle.isOn = Scaler.Enabled;
Level.value = (float)Scaler.CurrentLevel / Scaler.MaxLevel;
}
private void Update()
{
if (Scaler == null)
return;
Level.interactable = Scaler.OverrideLevel != -1;
if (Scaler.OverrideLevel == -1)
Level.value = (float)Scaler.CurrentLevel / Scaler.MaxLevel;
if (Scaler.Enabled)
Status.text = $"Enabled";
else
Status.text = $"Disabled";
}
}