Статические переменные родительского класса остаются неизменными - PullRequest
0 голосов
/ 17 февраля 2019

первое случайное число остается неизменным, например, его 50, текст дочернего класса будет 50, а после другого случайного значения, например, 45, оно должно быть 50 + 45, не заменять значение на 45

Родительский класс

    public class BattleSystemScript : GameManagerRevamped
   {
      static public int CoinsRandom;
      public TextMeshProUGUI Coins;

         void Start()
         {  
           CoinsRandom = Random.Range(30, 50);
           Coins.text = CoinsRandom.ToString();
         } 
  }

Детский класс

public class PlayerValues : BattleSystemScript
{
  int CoinsRandomValue;
  public TextMeshProUGUI PlayerCoins;         
       void Start()
       {
        CoinsRandomValue += CoinsRandom;
        PlayerCoins.text = CoinsRandomValue.ToString();
       }
}

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Сделать родительским Start a virtual метод

public class BattleSystemScript : GameManagerRevamped
{
    static public int CoinsRandom;
    public TextMeshProUGUI Coins;

    protected virtual void Start()
    {  
        CoinsRandom = Random.Range(30, 50);
        Coins.text = CoinsRandom.ToString();
    } 
}

И override в дочернем классе, чтобы расширить его

public class PlayerValues : BattleSystemScript
{
    int CoinsRandomValue;
    public TextMeshProUGUI PlayerCoins;         
    protected override void Start()
    {
        // call to the parent Start
        base.Start();

        CoinsRandomValue += CoinsRandom;
        PlayerCoins.text = CoinsRandomValue.ToString();
    }
}
0 голосов
/ 17 февраля 2019

Так что я просто должен был сделать дочерний класс слишком статичным lol

--->

static public int CoinsRandomValue;
static public int DiamondsValues;
static public int ExperienceRandomValue;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...