Ejemplo n.º 1
0
        // 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;
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
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;
                        }
                    }
                }
            });
        }