summaryrefslogtreecommitdiff
path: root/Assets/Samples/XR Hands/1.6.0/HandVisualizer/Scripts/JointVisualizer.cs
diff options
context:
space:
mode:
authorpryazha <pryadeiniv@mail.ru>2025-07-02 08:46:23 -0700
committerpryazha <pryadeiniv@mail.ru>2025-07-02 08:46:23 -0700
commit8263edd59284aba390aca011d25b79efecef4c48 (patch)
tree6346e2afaaabd32156601cafaf20d4ee813befaf /Assets/Samples/XR Hands/1.6.0/HandVisualizer/Scripts/JointVisualizer.cs
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.cs38
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;
+ }
+ }
+}