簡體   English   中英

父級到子級靜態變量保持不變

[英]Parent to child class static variables remains unchanged

第一個隨機數保持不變,例如其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();
       }
}

使父級Start 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();
    }
}

所以我只需要讓子類靜態化

--->

static public int CoinsRandomValue;
static public int DiamondsValues;
static public int ExperienceRandomValue;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM