using OpenCVForUnity.CoreModule; using System; using System.Collections.Generic; using UnityEngine; public class HandsUp : PoseBase { public override bool CheckPose(List points) { // 必须包含 "Nose", "RShoulder", "LShoulder", "RElbow", "LElbow" 点位 if (!YogaManager.Instance.ActionCheckPoints(points)) return false; var basePoint = YogaManager.Instance.Points; if (!YogaManager.Instance.ActionCheckPoints(basePoint)) return false; var rArmVector = ("RElbow".vector(points) - "RShoulder".vector(points)).normalized; var lArmVector = ("LElbow".vector(points) - "LShoulder".vector(points)).normalized; var rArmBaseVector = ("RElbow".vector(basePoint) - "RShoulder".vector(basePoint)).normalized; var lArmBaseVector = ("LElbow".vector(basePoint) - "LShoulder".vector(basePoint)).normalized; var angleR = Vector3.Angle(rArmVector, rArmBaseVector); var angleL = Vector3.Angle(lArmVector, lArmBaseVector); Debug.LogWarning("angleR:" + angleR + " angleL:" + angleL); if (angleR < 10 || angleL < 10) return false; return true; } }