利用协程使敌机和圆盘重复出现
- using UnityEngine;
- using System.Collections;
- public class RandomSp : MonoBehaviour {
- public GameObject[] enemy2;//圆盘
- public GameObject[] enemy1;//敌机
- public GameObject player;//我机
- void Start()
- {
- player = GameObject.FindWithTag("Player");//获取我机的名称
- NextTime();
- StartCoroutine(RandomSpNext()); //开始协程
- }
- IEnumerator RandomSpNext() {
- yield return new WaitForSeconds(10f);
- while(true){
- if(player==null){//当我机销毁时,敌机圆盘不在出现
- break;
- }
- NextTime();
- yield return new WaitForSeconds(10f);//停10秒
- }
- }
- void NextTime() {//产生第一波
- EnemyRandomSp();//随机产生三个圆盘
- StartCoroutine(Enemy1());//停3秒后随机产生三个敌机
- }
- void EnemyRandomSp() {//圆盘
- for (; ; )
- {
- int index = Random.Range(0, enemy2.Length);//随机产生圆盘
- float posX = Random.Range(-7f, 6f);//x轴随机产生
- int index2 = Random.Range(0, enemy2.Length);
- float posX2 = Random.Range(-7f, 6f);
- int index3 = Random.Range(0, enemy2.Length);
- float posX3 = Random.Range(-7f, 6f);
- if (Mathf.Abs(posX - posX2) > 3f && Mathf.Abs(posX - posX3) > 3f && Mathf.Abs(posX3 - posX2) > 3f)
- {//位置不重叠时克隆圆盘
- Instantiate(enemy2[index], new Vector3(posX, 1.2f, -8f), Quaternion.identity);
- Instantiate(enemy2[index], new Vector3(posX2, 1.2f, -8f), Quaternion.identity);
- Instantiate(enemy2[index], new Vector3(posX3, 1.2f, -8f), Quaternion.identity);
- break;
- }
- }
- }
- IEnumerator Enemy1() {//敌机
- yield return new WaitForSeconds(3f);
- for (; ; )
- {
- int index = Random.Range(0, enemy1.Length);//随机产生敌机
- float posX = Random.Range(-7f, 6f);//x轴随机产生
- int index2 = Random.Range(0, enemy1.Length);
- float posX2 = Random.Range(-7f, 6f);
- int index3 = Random.Range(0, enemy1.Length);
- float posX3 = Random.Range(-7f, 6f);
- if (Mathf.Abs(posX - posX2) > 3f && Mathf.Abs(posX - posX3) > 3f && Mathf.Abs(posX3 - posX2) > 3f)
- {//位置不重叠时克隆敌机
- Instantiate(enemy1[index], new Vector3(posX, 1.2f, -8f), Quaternion.identity);
- Instantiate(enemy1[index], new Vector3(posX2, 1.2f, -8f), Quaternion.identity);
- Instantiate(enemy1[index], new Vector3(posX3, 1.2f, -8f), Quaternion.identity);
- break;
- }
- }
- }
- }
|