敌人统一管理类:
public class MyEnemyManager : MonoBehaviour
{
public GameObject mEnemy; //生产指定敌人
public Transform[] mSpawnPoints; //生产地
MyPlayerHealth _MyPlayerHealth; //用于判定是否继续生产
private float spawnTime = 3f;
private void Start()
{
//找到场景中的英雄对象
_MyPlayerHealth = GameObject.Find("MyHero").GetComponent<MyPlayerHealth>();
//重复调用,3s后,每隔3s调用一次
InvokeRepeating("SpawnEnemy", spawnTime, spawnTime);
}
//小知识:编译时未显示引用,运行时自动回调
private void SpawnEnemy()
{
if (_MyPlayerHealth.mCurrentHealth <= 0)
return;
var spawnPointIndex = Random.Range(0, mSpawnPoints.Length);
Instantiate(mEnemy, mSpawnPoints[spawnPointIndex].position, mSpawnPoints[spawnPointIndex].rotation);
}
}
分数管理类:
public class MyScoreManager : MonoBehaviour
{
Text _ScoreMonitor; //显示分数UI控件
public static int mScore = 0;
private void Awake()
{
_ScoreMonitor = GetComponent<Text>();
}
private void Update()
{
_ScoreMonitor.text = "Score : " + mScore;
}
}