Kinect V2 多关节捕捉应用中break 与 continue的妙用
来源:互联网 发布:whip it 编辑:程序博客网 时间:2024/05/16 03:40
using UnityEngine;using System.Collections;using UnityEngine.UI;public class UseKinectPosTwoPeople : MonoBehaviour { public bool[] bools = new bool[32]; public Text numTxt; public Image[] images = new Image[32]; private int[] jointTypes = new int[25]; // Use this for initialization void Start () { for(int i = 0; i < 32; i++) { bools[i] = false; } //特征点 for (int i = 0; i < 25; i++) { jointTypes[i] = i; } }// Update is called once per framevoid Update () { bool isInit = KinectManager.Instance.IsInitialized(); //检测设备可用 if (isInit) { if (KinectManager.Instance.IsUserDetected()) { //检测到玩家 long userId = KinectManager.Instance.GetPrimaryUserID(); //获取用户id long userId2 = 0; //KinectManager.Instance.GetAllUserIds(); int count = KinectManager.Instance.GetUsersCount(); numTxt.text = "usersCount = " + count; if (count == 2) { userId = KinectManager.Instance.GetUserIdByIndex(0); userId2 = KinectManager.Instance.GetUserIdByIndex(1); } for (int i = 0; i < 32; i++) { Image img = GameObject.Find("startAniImg" + (i + 1)).GetComponent<Image>(); bool isFind = false; //找到//上半身 for(int j=0; j<11; j++) { if (KinectManager.Instance.IsJointTracked(userId, jointTypes[j])) { Vector3 pos = KinectManager.Instance.GetJointKinectPosition(userId, jointTypes[j]); //1.获取关节点3D坐标 Vector3 screenPos = Camera.main.WorldToScreenPoint(pos); //2.关节点坐标转换成屏幕坐标 if (RectTransformUtility.RectangleContainsScreenPoint(img.rectTransform, screenPos, null)) { GameObject.Find("startAniImg" + (i + 1)).GetComponent<StartAnimationClass>().isPlay = true; bools[i] = true; isFind = true; break; } } if (count == 2) { if (KinectManager.Instance.IsJointTracked(userId2, jointTypes[j])) { Vector3 pos2 = KinectManager.Instance.GetJointKinectPosition(userId2, jointTypes[j]); //1.获取关节点3D坐标 Vector3 screenPos2 = Camera.main.WorldToScreenPoint(pos2); //2.关节点坐标转换成屏幕坐标 if (RectTransformUtility.RectangleContainsScreenPoint(img.rectTransform, screenPos2, null)) { GameObject.Find("startAniImg" + (i + 1)).GetComponent<StartAnimationClass>().isPlay = true; bools[i] = true; isFind = true; break; } } } } if (isFind) { continue; } if (bools[i]) { GameObject.Find("startAniImg" + (i + 1)).GetComponent<StartAnimationClass>().isPlay = false; GameObject.Find("startAniImg" + (i + 1)).GetComponent<StartAnimationClass>().isClose = true; bools[i] = false; } } } } }}
0 0
- Kinect V2 多关节捕捉应用中break 与 continue的妙用
- java中break与continue的区别
- js 中break 与continue的区别
- C#中break与continue的区别
- php中break与continue的区别
- C++中break与continue的区别
- 循环中 break 与 continue 的区别
- Scala中break与continue的用法
- scala中break与continue的实现
- break,continue,break的用法与区别
- break,continue,break的用法与区别
- break,continue,break的用法与区别
- break,continue,break的用法与区别
- continue与break 的用法
- break与continue的区别
- Break 与continue的用法
- Break与Continue的比较
- continue 与break的区别
- Linux JDK的安装与配置
- ThreadLocal的理解
- PHP初学之路【二】
- TNS-12535: TNS:operation timed out、TNS-00505: Operation timed out
- 设计模式总结之Factory Method Pattern(工厂方法模式)
- Kinect V2 多关节捕捉应用中break 与 continue的妙用
- linux服务器上运行java程序,引用外部jar包
- 数据结构实验之查找四:二分查找
- 网上干货 ElasticSearch详解与优化设计
- WebSocket网络接口
- FILE文件流的中fopen、fread、fseek、fclose的使用
- 音视频开发——流媒体数据传输RTP(三)
- Java IO 其他流 -- 字节数组流,字符数组流和数据流
- 关于页面刷新的那些事