summaryrefslogtreecommitdiff
path: root/Assets/Samples/OpenXR Plugin/1.14.3/Controller/Scripts/ActionToVector2SliderISX.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Samples/OpenXR Plugin/1.14.3/Controller/Scripts/ActionToVector2SliderISX.cs')
-rw-r--r--Assets/Samples/OpenXR Plugin/1.14.3/Controller/Scripts/ActionToVector2SliderISX.cs60
1 files changed, 60 insertions, 0 deletions
diff --git a/Assets/Samples/OpenXR Plugin/1.14.3/Controller/Scripts/ActionToVector2SliderISX.cs b/Assets/Samples/OpenXR Plugin/1.14.3/Controller/Scripts/ActionToVector2SliderISX.cs
new file mode 100644
index 0000000..60fce5b
--- /dev/null
+++ b/Assets/Samples/OpenXR Plugin/1.14.3/Controller/Scripts/ActionToVector2SliderISX.cs
@@ -0,0 +1,60 @@
+using UnityEngine.UI;
+using UnityEngine.InputSystem;
+
+namespace UnityEngine.XR.OpenXR.Samples.ControllerSample
+{
+ public class ActionToVector2SliderISX : MonoBehaviour
+ {
+ [SerializeField]
+ private InputActionReference m_ActionReference;
+ public InputActionReference actionReference { get => m_ActionReference; set => m_ActionReference = value; }
+
+ [SerializeField]
+ public Slider xAxisSlider = null;
+
+ [SerializeField]
+ public Slider yAxisSlider = null;
+
+
+ private void OnEnable()
+ {
+ if (xAxisSlider == null)
+ Debug.LogWarning("ActionToSlider Monobehaviour started without any associated X-axis slider. This input won't be reported.", this);
+
+ if (yAxisSlider == null)
+ Debug.LogWarning("ActionToSlider Monobehaviour started without any associated Y-axis slider. This input won't be reported.", this);
+ }
+
+ void Update()
+ {
+ if (actionReference != null && actionReference.action != null && xAxisSlider != null && yAxisSlider != null)
+ {
+ if (actionReference.action.enabled)
+ {
+ SetVisible(gameObject, true);
+ }
+
+ Vector2 value = actionReference.action.ReadValue<Vector2>();
+ xAxisSlider.value = value.x;
+ yAxisSlider.value = value.y;
+ }
+ else
+ {
+ SetVisible(gameObject, false);
+ }
+ }
+
+ void SetVisible(GameObject go, bool visible)
+ {
+ Graphic graphic = go.GetComponent<Graphic>();
+ if (graphic != null)
+ graphic.enabled = visible;
+
+ Graphic[] graphics = go.GetComponentsInChildren<Graphic>();
+ for (int i = 0; i < graphics.Length; i++)
+ {
+ graphics[i].enabled = visible;
+ }
+ }
+ }
+}