using UnityEngine; using UnityEngine.UI; /// /// A simple UI controller to display light estimation information. /// [RequireComponent(typeof(LightEstimation))] public class LightEstimationUI : MonoBehaviour { [Tooltip("The UI Text element used to display the estimated brightness in the physical environment.")] [SerializeField] Text m_BrightnessText; /// /// The UI Text element used to display the estimated brightness value. /// public Text brightnessText { get { return m_BrightnessText; } set { m_BrightnessText = brightnessText; } } [Tooltip("The UI Text element used to display the estimated color temperature in the physical environment.")] [SerializeField] Text m_ColorTemperatureText; /// /// The UI Text element used to display the estimated color temperature in the scene. /// public Text colorTemperatureText { get { return m_ColorTemperatureText; } set { m_ColorTemperatureText = value; } } [Tooltip("The UI Text element used to display the estimated color correction value for the physical environment.")] [SerializeField] Text m_ColorCorrectionText; /// /// The UI Text element used to display the estimated color correction value for the scene. /// public Text colorCorrectionText { get { return m_ColorCorrectionText; } set { m_ColorCorrectionText = value; } } void Awake() { m_LightEstimation = GetComponent(); } void Update() { SetUIValue(m_LightEstimation.brightness, brightnessText); SetUIValue(m_LightEstimation.colorTemperature, colorTemperatureText); SetUIValue(m_LightEstimation.colorCorrection, colorCorrectionText); } void SetUIValue(T? displayValue, Text text) where T : struct { if (text != null) text.text = displayValue.HasValue ? displayValue.Value.ToString(): k_UnavailableText; } const string k_UnavailableText = "Unavailable"; LightEstimation m_LightEstimation; }