// 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; } } } }); }
private void Start() { collideScript = FindObjectOfType <CollideManage>(); }