/// <summary> /// 是否存在区域内 /// </summary> /// <param name="screenPoint">屏幕坐标</param> /// <param name="size">大小</param> /// <param name="handIndex">手势</param> /// <returns></returns> public static bool IsAreaContains(Vector2 screenPoint, Vector2 size, int handIndex) { //if (!KinectTransfer.IsHandActive(handIndex)) return false; //获取到此时手的屏幕坐标屏幕坐标 Vector3 screenHandPoint = MOperateManager.GetHandScreenPoint(handIndex); //根据自身此时的屏幕坐标,去算区域 return(ScreenPointContains(screenPoint, size, screenHandPoint)); }
/// <summary> /// 是否存在区域内 /// </summary> /// <param name="transform">指定物体</param> /// <param name="handIndex"></param> /// <returns></returns> public static bool IsAreaContains(Transform transform, int handIndex) { //if (!KinectTransfer.IsHandActive(handIndex)) return false; try { //获取到此时手的屏幕坐标屏幕坐标 Vector3 screenHandPoint = MOperateManager.GetHandScreenPoint(handIndex); Vector3 screenPoint = MUtility.UIWorldToScreenPoint(transform.position); //根据自身此时的屏幕坐标,去算区域 RectTransform rectTransform = transform.GetComponent <RectTransform>(); return(ScreenPointContains(screenPoint, rectTransform.sizeDelta, screenHandPoint)); } catch (Exception) { return(false); //throw new Exception("手势可能没激活,如果是在编辑器上遇到此问题,不用理会"); } }