Я создал небольшую игру в аркадном стиле, в которой переменная bool отслеживает, закончилась ли игра (gameOver).
private bool gameOver;
Когда препятствие попадает в игрока,выполняется следующий метод:
public void OnCollisionEnter2D(Collision2D other)
{
//GameOver
gameOver = true;
}
Следующий метод должен увеличивать счет, только если значение gameOver равно false.
private void OnTriggerEnter2D(Collider2D other)
{
if (!gameOver)
{
if (int.Parse(scoreText.text) == 0)
{
scoreText.text = "1";
}
else if (int.Parse(scoreText.text) > 0)
{
int oldNumber = int.Parse(scoreText.text);
int newNumber = oldNumber + 1;
scoreText.text = newNumber.ToString();
}
}
Destroy(gameObject);
}
Но когда игра фактически «проиграна», счет остается увеличивающимся.Я зарегистрировал значение gameOver в разное время, и кажется, что значение gameOver установлено равным true в методе OnCollisionEnter2D, но при входе в метод OnTriggerEnter2D оно говорит false.Я пытался присвоить значение отдельным методом с помощью out-Keyword, но это тоже не сработало.Может кто-нибудь мне помочь?Заранее спасибо.