// Use this for initialization private void InitCircle(Vector3 pos) { GameObject item = objs.GetItem(); if (item == null) { item = CreateCircleGame(); objs.Add(item); } item.SetActive(true); item.transform.position = pos; }
void InitFruit(bool isbomb) { int RangeFruit = Random.Range(0, fruits.Length); float x = Random.Range(-4.5f, 4.5f); z += 1.5f; if (z >= 6.0) { z = 0; } GameObject gameOb; Vector3 vet = transform.position + new Vector3(x, StartY, z); Vector3 scaleVet = Vector3.one; if (!isbomb) { switch (RangeFruit) { case 0: poolCurrentFruit = poolApple; scaleVet = Vector3.one * 1500; break; case 1: poolCurrentFruit = poolPineapple; scaleVet = Vector3.one * 400; //菠萝 break; case 2: //西瓜 poolCurrentFruit = poolWatermelon; scaleVet = Vector3.one * 600; break; default: break; } gameOb = poolCurrentFruit.GetItem(); if (gameOb == null) { gameOb = Instantiate(fruits[RangeFruit], vet, Random.rotation); // gameOb.transform.parent = gameObject.transform; poolCurrentFruit.Add(gameOb); } gameOb.SetActive(true); // gameOb.SetActive(false); gameOb.transform.position = vet; gameOb.transform.localScale = scaleVet; gameOb.transform.localRotation = Quaternion.identity; //gameOb = GameObject.Instantiate(fruits[RangeFruit], vet, Random.rotation); } else { gameOb = Instantiate(bomb, vet, Random.rotation); } float power = Random.Range(1.6f, 1.7f) * -Physics.gravity.y * 1.5f * powerMod; var direction = new Vector3(-x * 0.05f * Random.Range(0.32f, 0.81f), 1.0f); direction.z = 0.0f; gameOb.GetComponent <Rigidbody>().velocity = direction * power; gameOb.GetComponent <Rigidbody>().AddTorque(Random.onUnitSphere * 0.1f, ForceMode.Impulse); GetComponent <AudioSource>().PlayOneShot(sfx, 2); }
// 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; } } } }); }