コード例 #1
0
 /// <summary>
 /// Ustawia wszystkie parametry czołgu.
 /// Wystarczy, że podasz enum czołgu jakiego parametry chcesz ustawić
 /// </summary>
 /// <param name="myTank">enum czołgu którego parametry chcesz przypisać maszynie</param>
 void SetTankParametrs(TankData myTank)
 {
     GetComponent <PlayerGO>().myPlayer.tank = TanksData.FindTankEnum(myTank);
     magazynek             = myTank.maxAmmo;
     maxHp                 = myTank.maxHp;
     damage                = myTank.damage;
     reload                = myTank.reload;
     speed                 = myTank.speed;
     turnSpeed             = myTank.turnSpeed;
     headTurnSpeed         = myTank.headTurnSpeed;
     damageLotery          = myTank.damageLotery;
     reloadBetweenMagazine = myTank.reloadBetweenMagazine;
     GetComponent <TankShot>().ResetMagazine(myTank.maxAmmo);
     if (photonView.isMine)
     {
         GetComponent <PlayerGO>().myPlayer.currentHp = myTank.maxHp;
     }
 }
コード例 #2
0
    void SetTankObject(TankData myTank)
    {
        //Ustawiam parametry czołgu
        SetTankParametrs(myTank);

        //Ustawiam textury kadłuba, wieży i (jeśli jest) przykrycia lufy
        SetTankTexture(myTank.hullTexture, myTank.turretTexture, myTank.turretCapTexture);

        //Ustawiam pozycję wieży
        SetGameObjectPosition(myTank.turretPos.x, myTank.turretPos.y, turretKeep);

        //Ustawiam pozycję przykrycia lufy
        SetGameObjectPosition(myTank.turretCapPos.x, myTank.turretCapPos.y, turretCap);

        //Ustawiam pozycję wylotu lufy
        SetGameObjectPosition(myTank.barrlelEndPos.x, myTank.barrlelEndPos.y, barrelEndPoint);

        //Ustawiam collider czołgu oraz collider zbierania score
        ResetPolygon(myTank.offset.x, myTank.offset.y, myTank.size.x, myTank.size.y);

        //Jeśli mam przykrycie lufy to włączam ten GameObject, jeśli nie mam to wyłączam
        turretCap.SetActive(myTank.iHaveTurretCap);

        //Jeśli wieża ma ograniczoną rotację to ją muszę wpierw wyprostować
        if (!myTank.turretCan360)
        {
            turret.transform.localRotation = Quaternion.identity;
        }

        //Dla graczy lokalnych
        if (photonView.isMine)
        {
            MainTurret.Instance.OgraniczonaRotacja = !myTank.turretCan360;

            TechTree.Instance.TankSwitchTierButton(myTank.level);

            TechTree.Instance.FindTankButton(TanksData.FindTankEnum(myTank)).OnClick();

            cameraOrthographicSize = myTank.cameraSize + 10;
        }

        #region Wyjątki czołgów

        //OI'emu musimy włączyć działka lub je wyłączyć (jeśli zginął i np. KHA-GO będzie przez to przechodzić)
        if (myTank.tank == Tanks.O_I)
        {
            for (int i = 0; i < turretsOI.Length; i++)
            {
                turretsOI[i].SetActive(true);
                turretsOI[i].GetComponent <AutoShot>().Reset();
            }
        }
        else
        {
            for (int i = 0; i < turretsOI.Length; i++)
            {
                turretsOI[i].SetActive(false);
            }
        }

        //IS7 również posiada wieżyczkę na wieży
        if (myTank.tank == Tanks.IS7)
        {
            turretIS.SetActive(true);
            turretIS.GetComponent <AutoShot>().Reset();
        }
        else
        {
            turretIS.SetActive(false);
        }

        // natomiast HA-TO ma nierychomą wieżyczkę no ale trzeba ją wyprostować (prędkość obrotu ma = 0)
        if (myTank.tank == Tanks.HA_TO_300MM)
        {
            turret.transform.localRotation = Quaternion.identity;
        }
        #endregion
    }