blob: b178975f5beddc570951c968e77bd9dcbae341e1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
using System.Collections;
using UnityEngine.InputSystem;
using UnityEngine.XR.OpenXR.Input;
namespace UnityEngine.XR.OpenXR.Samples.ControllerSample
{
public class ActionToVisibility : MonoBehaviour
{
[SerializeField] private InputActionReference _actionReference = null;
[SerializeField] private GameObject _target = null;
private void OnEnable()
{
if (null == _target)
_target = gameObject;
_target.SetActive(false);
if (_actionReference != null && _actionReference.action != null)
StartCoroutine(UpdateVisibility());
}
private IEnumerator UpdateVisibility()
{
while (isActiveAndEnabled)
{
if (_actionReference.action != null &&
_actionReference.action.controls.Count > 0 &&
_actionReference.action.controls[0].device != null &&
OpenXRInput.TryGetInputSourceName(_actionReference.action, 0, out var actionName, OpenXRInput.InputSourceNameFlags.Component, _actionReference.action.controls[0].device))
{
_target.SetActive(true);
break;
}
yield return new WaitForSeconds(1.0f);
}
}
}
}
|