Моя игра проста. Вам нужно уклоняться от множества сфер как можно дольше и набирать больше очков.
Но когда мой игрок сталкивается с одной из сфер, игра все равно продолжается. У меня есть сценарий «Двигаться вперед» для сфер противника, которые движутся с определенной скоростью, и сценарий «Уничтожить за пределами поля», когда сферы проходят мимо игрока. они уничтожаются за кадром и добавляют 5 очков к счету. У меня есть скрипт «Game Manager», который создает все сферы и показывает текущий счет. (Возможно, мне придется перенаправить часть кода, верно?)
Вот что находится в моем скрипте Game Manager. Мне нужно знать, как на самом деле проверить, мертв ли игрок, когда что-то происходит.
Код: Выделить всё
using TMPro;
using UnityEngine;
public class GameManager : MonoBehaviour
{
public GameObject[] EnemyPrefabs;
private float spawnRangeX = 17;
private float spawnPosZ = 35;
private float StartDelay = 2.2f;
private float SpawnInterval = 0.1f;
public bool PlayerAlive;
public TextMeshProUGUI scoreText;
private int score;
public TextMeshProUGUI gameOverText;
// Start is called before the first frame update
void Start()
{
score = 0;
UpdateScore(0);
InvokeRepeating("SpawnRandomEnemy", StartDelay, SpawnInterval);
}
// Update is called once per frame
void Update()
{
PlayerAlive = true;
}
public void UpdateScore(int scoreToAdd)
{
score += scoreToAdd;
scoreText.text = "Score: " + score;
}
void SpawnRandomEnemy()
{
int enemyIndex = Random.Range(0, EnemyPrefabs.Length);
Vector3 spawnPos = new Vector3(Random.Range(-spawnRangeX, spawnRangeX), 0, spawnPosZ);
Instantiate(EnemyPrefabs[enemyIndex], spawnPos, EnemyPrefabs[enemyIndex].transform.rotation);
}
}
Подробнее здесь: https://stackoverflow.com/questions/764 ... -destroyed
Мобильная версия