diff options
Diffstat (limited to 'Assets/Samples/XR Hands/1.6.0/HandVisualizer/Scripts/JointVisualizer.cs')
-rw-r--r-- | Assets/Samples/XR Hands/1.6.0/HandVisualizer/Scripts/JointVisualizer.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Assets/Samples/XR Hands/1.6.0/HandVisualizer/Scripts/JointVisualizer.cs b/Assets/Samples/XR Hands/1.6.0/HandVisualizer/Scripts/JointVisualizer.cs new file mode 100644 index 0000000..d8b67e9 --- /dev/null +++ b/Assets/Samples/XR Hands/1.6.0/HandVisualizer/Scripts/JointVisualizer.cs @@ -0,0 +1,38 @@ +using UnityEngine; +using UnityEngine.XR.Hands.Processing; + +namespace UnityEngine.XR.Hands.Samples.VisualizerSample +{ + public class JointVisualizer : MonoBehaviour + { + [SerializeField] + GameObject m_JointVisual; + + [SerializeField] + Material m_HighFidelityJointMaterial; + + [SerializeField] + Material m_LowFidelityJointMaterial; + + bool m_HighFidelityJoint; + + Renderer m_JointRenderer; + + public void NotifyTrackingState(XRHandJointTrackingState jointTrackingState) + { + bool highFidelityJoint = (jointTrackingState & XRHandJointTrackingState.HighFidelityPose) == XRHandJointTrackingState.HighFidelityPose; + if (m_HighFidelityJoint == highFidelityJoint) + return; + + m_JointRenderer.material = highFidelityJoint ? m_HighFidelityJointMaterial : m_LowFidelityJointMaterial; + + m_HighFidelityJoint = highFidelityJoint; + } + + void Start() + { + if (m_JointVisual.TryGetComponent<Renderer>(out var jointRenderer)) + m_JointRenderer = jointRenderer; + } + } +} |