using UnityEngine.UI;
using UnityEngine.XR.Interaction.Toolkit;

namespace UnityEngine.XR.Content.Interaction
{
    public class DistanceCalculationToggle : MonoBehaviour
    {
        [SerializeField]
        Toggle m_Toggle;

        [SerializeField]
        XRBaseInteractable[] m_Interactables;

        void Start()
        {
            if (m_Toggle == null)
                return;

            OnToggleValueChanged(m_Toggle.isOn);
            m_Toggle.onValueChanged.AddListener(OnToggleValueChanged);
        }

        void OnToggleValueChanged(bool value)
        {
            var distanceCalculationMode = value
                ? XRBaseInteractable.DistanceCalculationMode.ColliderVolume
                : XRBaseInteractable.DistanceCalculationMode.ColliderPosition;

            foreach (var interactable in m_Interactables)
            {
                if (interactable != null)
                    interactable.distanceCalculationMode = distanceCalculationMode;
            }
        }
    }
}