示例#1
0
    void Update()
    {
        GameObject gobj = GameObject.FindWithTag("PlayCharacter");

        if (gobj != null)
        {
            zPlayerPos = gobj.GetComponent <Transform>().position.z;

            if ((zScenePos - zPlayerPos) < 300)
            {
                randNo = UnityEngine.Random.Range(0, 10);

                if (randNo < 5)
                {
                    Instantiate(base1, new Vector3(0, 0, zScenePos), base1.rotation);
                    zScenePos += 36;
                }
                else
                {
                    Instantiate(base2, new Vector3(0, 0, zScenePos), base2.rotation);
                    zScenePos += 36;
                }
            }

            if ((zWallPos - zPlayerPos) < 300)
            {
                Instantiate(wall_l, new Vector3(-11, 6, zWallPos), wall_l.rotation);
                Instantiate(wall_r, new Vector3(10, 4, zWallPos), wall_r.rotation);
                zWallPos += 36;
            }


            if ((zObjPos - zPlayerPos) < 300)
            {
                randObj  = UnityEngine.Random.Range(0, 80);
                randLane = UnityEngine.Random.Range(1, 4);

                if (randLane == 1)
                {
                    laneNo = -1.5f;
                }
                else if (randLane == 3)
                {
                    laneNo = 0;
                }
                else
                {
                    laneNo = 1.5f;
                }

                if (randObj > 15 && randObj <= 25)
                {
                    objfact       = new FireFactory();
                    newfireobject = (Fire)objfact.createObstacle(fireObj, laneNo, 1.5f, zObjPos);

                    BoxCollider fireBoxCollider = newfireobject.obj.AddComponent <BoxCollider>();
                    // fireBoxCollider.isTrigger = true;

                    newfireobject.attachPlayer(player.GetComponent <sphere>());

                    zObjPos += randObj;
                }
                else if (randObj > 25 && randObj <= 40)
                {
                    objfact        = new FenceFactory();
                    newfenceobject = (Fence)objfact.createObstacle(fenceObj, laneNo, 0.75f, zObjPos);

                    BoxCollider fenceBoxCollider = newfenceobject.obj.AddComponent <BoxCollider>();
                    // fenceBoxCollider.isTrigger = true;

                    newfenceobject.attachPlayer(player.GetComponent <sphere>());

                    zObjPos += randObj;
                }
                else if (randObj > 45 && randObj <= 55)
                {
                    objfact          = new CapsuleFactory();
                    newcapsuleobject = (Capsule)objfact.createObstacle(capsuleObj, laneNo, 1, zObjPos);

                    CapsuleCollider capsuleCollider = newcapsuleobject.obj.AddComponent <CapsuleCollider>();
                    // capsuleCollider.isTrigger = true;

                    newcapsuleobject.attachPlayer(player.GetComponent <sphere>());
                    zObjPos += 25;
                }
                else if (randObj > 55 && randObj <= 70)
                {
                    objfact       = new CoinFactory();
                    newcoinobject = (Coin)objfact.createObstacle(coinObj, laneNo, 1.5f, zObjPos);

                    CapsuleCollider coinCollider = newcoinobject.obj.AddComponent <CapsuleCollider>();
                    // coinCollider.isTrigger = true;

                    newcoinobject.attachPlayer(player.GetComponent <sphere>());
                    zObjPos += 25;
                }
                else if (randObj > 70 && randObj < 75)
                {
                    objfact = new PotionFactory();

                    newhealthpotionobject = (HealthPotion)objfact.createObstacle(healthPotionObj, laneNo, 1.5f, zObjPos);
                    // Instantiate(capsule,new Vector3(laneNo,1,zObjPos),capsule.rotation);
                    SphereCollider potionCollider = newhealthpotionobject.obj.AddComponent <SphereCollider>();
                    // potionCollider.isTrigger = true;

                    newhealthpotionobject.attachPlayer(player.GetComponent <sphere>());
                    zObjPos += 25;
                }
            }
        }
    }