using NaughtyAttributes; using System.Collections.Generic; using TMPro; using UnityEngine; using static UDE_HAND_INTERACTION.HandStaticPose; namespace UDE_HAND_INTERACTION { public class StaticPoseDetector : MonoBehaviour { public Material DefaultGrid; public HandStaticPose[] handStaticPoses; public List LeftPoses { get; private set; } = new(); public List RightPoses { get; private set; } = new(); public TextMeshPro PoseMsg; [Button] public void DetectPoses() { handStaticPoses = GetComponentsInChildren(); } // Start is called before the first frame update void Start() { DetectPoses(); foreach (HandStaticPose pose in handStaticPoses) { if(pose.handness == Handness.Left) { LeftPoses.Add(pose); } else { RightPoses.Add(pose); } pose.OnPoseDetectResult += PoseDetectAnnouncement; } } void PoseDetectAnnouncement(object sender, StaticPoseDetectEventArgs e) { if(e.IsDetected) { Debug.Log($"{e._Pose.name} is detected."); PoseMsg.text = $"{e._Pose.name} is detected."; } else { PoseMsg.text = "No Pose."; } } } }