using OpenCVForUnity.CoreModule; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class HeadTurnLeft : PoseBase { private bool _isRunning = false; public override bool CheckPose(List<Point> points) { // 必须包含 Nose 和 LEar 和 Neck 的点位 if (!YogaManager.Instance.ActionCheckPoints(points)) return false; var basePoint = YogaManager.Instance.Points; if (!YogaManager.Instance.ActionCheckPoints(basePoint)) return false; //左转头检测 var headVector = ("REye".vector(points) - "LEye".vector(points)).normalized; var headBaseVector = ("RElbow".vector(basePoint) - "LElbow".vector(basePoint)).normalized; var noseVector = ("Nose".vector(points) - "Neck".vector(points)).normalized; var noseBaseVector = ("Nose".vector(basePoint) - "Neck".vector(basePoint)).normalized; if (Vector2.Dot(headVector, noseVector) > Vector2.Dot(headBaseVector, noseBaseVector) + 0.1f) return true; return false; } }