Скрипт работает только у одного объекта, а у других нет
у меня есть скрипт государства и несколько объектов с этим скриптом на сцене. Есть проблема, скрипт работает только у последнего созданного объекта, а у остальных нет.
Я вот не знаю в чем причина, код работал стабильно до появления второго государства.
Код государства, который работает только у одного объекта.
private GameObject hr;
public int id;
[Header("Экономика")]
public int econ = 0;
public float econp = 24;
[Header("Население")]
public int nas = 0;
public float nasp = 75;
[Header("Доход")]
public int money = 0;
public float nalogst = 12;
public float moneyprirost;
[Header("Остальное")]
public float Счастье = 93;
public string Name;
private float minusnalog = 1f;
private void Start()
{
hr = GameObject.FindGameObjectWithTag("GBS");
hr.GetComponent<GameBaseScript>().selectedcountry = gameObject.GetComponent<Country>().id;
}
public void Update()
{
float timeupd = hr.GetComponent<GameBaseScript>().timeupd;
if (hr.GetComponent<GameBaseScript>().timeto <= 0 && hr.GetComponent<GameBaseScript>().timeto != -1)
{
hr.GetComponent<GameBaseScript>().timeto = -1;
nas += Mathf.RoundToInt(Random.Range(24, 65) * nasp);
econ += Mathf.RoundToInt(Random.Range(4, 9) * econp);
float ecprirost = 1;
if (nas >= econ)
ecprirost = nas / econ;
if (nas < econ)
ecprirost = 1;
moneyprirost = (100 / ecprirost) + ((nalogst / 100 * nas) / 100);
money += Mathf.RoundToInt(moneyprirost);
if (nalogst > 20)
{
float a = minusnalog / (100 / nalogst);
Счастье -= a;
}
Счастье = ((float)(int)(Счастье * 100)) / 100;
hr.GetComponent<GameBaseScript>().NewDay();
hr.GetComponent<GameBaseScript>().timeto = timeupd;
}
}
public void OnMouseDown()
{
GameObject select;
select = GameObject.FindGameObjectWithTag("Select");
if(gameObject.CompareTag("D'Select"))
{
gameObject.tag = "Select";
select.tag = "D'Select";
hr.GetComponent<GameBaseScript>().selectedcountry = gameObject.GetComponent<Country>().id;
}
}