创建生成小兵的脚本挂在名为GameManager的空物体上:
using UnityEngine;
using System.Collections;
public class CreatSoldier : MonoBehaviour {
[SerializeField]
GameObject solider;
[SerializeField]
Transform startTran;
[SerializeField]
Transform soliderParent;
//是否生成小兵默认为true
bool isCreateSolider = true;
//生成小兵的数量
public int soliderCount;
private void Start()
{
StartCoroutine(Create(0,1,5));
}
//生成一个小兵
void CreateSmartSolider()
{
GameObject obj= Instantiate(solider,startTran.position,Quaternion.identity);
obj.transform.parent = soliderParent;//生成的小兵指定父物体
}
//协程生成一波一波小兵
/// <summary>
/// </summary>
/// <param name="time">游戏开始后几秒开始生成士兵</param>
/// <param name="delyTime">同一波内两个小兵生成的间隔</param>
/// <param spwanTime="">下一波小兵生成的时间间隔</param>
/// <returns></returns>
IEnumerator Create(float time,float delyTime,float spwanTime)
{
yield return new WaitForSeconds(time);
while (isCreateSolider)
{
//一个for循环代表一波小兵
for (int i=0;i<soliderCount;i++)
{
CreateSmartSolider();
yield return new WaitForSeconds(delyTime);
}
//等待下一波小兵生成的时间
yield return new WaitForSeconds(spwanTime);
}
}
}
运行结果: