Exemple #1
0
        // Use this for initialization
        void Awake()
        {
            //return;
            BaiduARHumanPose humanPose = FindObjectOfType <BaiduARHumanPose>();

            humanPose.InvokeErrorMessage(delegate(string errNum, string errMsg) {
                ARDebug.LogError("errMsg = " + errMsg);
            });


            humanPose.InvokeClearMessage(delegate(){
                ARDebug.Log("InvokeClearMessage ");
                objs.Clear();
            });

            humanPose.InvokePosMessage(delegate(List <OutPutData> lstVet)
            {
                ARDebug.Log("InvokePosMessage Init lstVet = " + lstVet.Count);
                for (int i = 0; i < lstVet.Count; i++)
                {
                    // ARDebug.Log("i = "+i + " score="+lstVet[i].score);
                    if (lstVet[i].score > 0.6)
                    {
                        GameObject item = objs.GetItem();
                        if (item == null)
                        {
                            item = CreateCircleGame();
                            objs.Add(item);
                        }
                        item.SetActive(true);
                        item.transform.position = lstVet[i].VectorWorldPos;
                    }
                }
                if (lstVet.Count < 18)
                {
                    return;
                }
                ARDebug.Log("InvokePosMessage Init22");
                Vector2 vetpos = new Vector2(lstVet[1].VectorScreenPos.x, lstVet[1].VectorScreenPos.y + (lstVet[1].VectorScreenPos.x - lstVet[2].VectorScreenPos.x));
                if (null == collideScript)
                {
                    collideScript = FindObjectOfType <CollideManage>();
                }
                collideScript.SetTexiaoPos(vetpos);


                for (int i = 0; i < lstVet.Count; i++)
                {
                    if (i == 4)  //表示右手腕
                    {
                        Vector2 vet = Vector2.zero;
                        if (IsBound(lstVet[i].VectorScreenPos)) //如果没有检测到点
                        {
                            lstVet[i].VectorScreenPos = lastVet_righthand;
                        }
                        if (IsBound(lstVet[i - 1].VectorScreenPos)) //如果没有检测到点
                        {
                            lstVet[i - 1].VectorScreenPos = lastVet_righthand;
                        }

                        GetHandPos(lstVet[i - 1].VectorScreenPos, lstVet[i].VectorScreenPos, out vet);

                        if (null == collideScript)
                        {
                            collideScript = FindObjectOfType <CollideManage>();
                        }
                        if (!IsBound(vet))
                        {
                            collideScript.HandleData(vet, HumanPoseType.POSE_RIGHTHAND);
                            lastVet_righthand = vet;
                        }
                    }
                    if (i == 7)  //表示左手腕
                    {
                        Vector2 vet = Vector2.zero;
                        if (IsBound(lstVet[i].VectorScreenPos)) //如果没有检测到点
                        {
                            lstVet[i].VectorScreenPos = lastVet_lefthand;
                        }
                        if (IsBound(lstVet[i - 1].VectorScreenPos)) //如果没有检测到点
                        {
                            lstVet[i - 1].VectorScreenPos = lastVet_lefthand;
                        }

                        GetHandPos(lstVet[i - 1].VectorScreenPos, lstVet[i].VectorScreenPos, out vet);

                        if (null == collideScript)
                        {
                            collideScript = FindObjectOfType <CollideManage>();
                        }
                        if (!IsBound(vet))
                        {
                            collideScript.HandleData(vet, HumanPoseType.POSE_LEFTHAND);
                            lastVet_lefthand = vet;
                        }
                        // collideScript.HandleData(lstVet[i].VectorScreenPos);
                    }
                    if (i == 10) //表示右脚
                    {
                        if (null == collideScript)
                        {
                            collideScript = FindObjectOfType <CollideManage>();
                        }
                        if (IsBound(lstVet[i].VectorScreenPos))
                        {
                            lstVet[i].VectorScreenPos = lastVet_rightwrist;
                        }
                        if (!IsBound(lstVet[i].VectorScreenPos))
                        {
                            collideScript.HandleData(lstVet[i].VectorScreenPos, HumanPoseType.POSE_RIGHTWRIST);
                            lastVet_rightwrist = lstVet[i].VectorScreenPos;
                        }
                    }
                    if (i == 13) //表示左脚
                    {
                        if (null == collideScript)
                        {
                            collideScript = FindObjectOfType <CollideManage>();
                        }
                        if (IsBound(lstVet[i].VectorScreenPos))
                        {
                            lstVet[i].VectorScreenPos = lastVet_leftwrist;
                        }
                        if (!IsBound(lstVet[i].VectorScreenPos))
                        {
                            collideScript.HandleData(lstVet[i].VectorScreenPos, HumanPoseType.POSE_LEFTWRIST);
                            lastVet_leftwrist = lstVet[i].VectorScreenPos;
                        }
                    }
                }
            });
        }
Exemple #2
0
 private void Start()
 {
     collideScript = FindObjectOfType <CollideManage>();
 }