版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wang_lvril/article/details/80626201
1.实例化函数
Instantite( gameObject , transform.position , transform.rotation ) ;
在position位置,朝着rotation方向,生成一个gameObject(Clone);
1.事件生成(如子弹的发射,特效等)
发射子弹,游戏逻辑,在Update()函数里添加代码:
void Update(){
float fireCD=0.5f;//发射时间间隔
float nextFire=0;
if(Input.GetButton("Fire1")&&Time.time>nextFire){
nextFire=Time.time+fireCD;
Instantiate(bulletGO,shotSpawn.position,shotSpawn.rotation);
}
}
bulletGO:子弹预制体。shotSpawn:子弹生成位置的Transform。
Time.time:游戏开始到现在的时间。
2.固定生成(如怪物,敌人)
一般都是每隔固定时间段随机生成一批对象,用"协程"来做.
IEnumerator BornEnemy(){
int enemyCount; //每波敌人数量
float startTime; //开始等待时间
float bornTime; //每生成一个等待时间
float nextBornTime; //下波等待时间
yield return new WaitForSeconds(startTime);
while(true){
for(int i=0;i<enemyCount;i++){
Instantiate(enemyGO,trnas.position,Quaternion.identity);
yield return new WaitForSeconds(bornTime);
}
yield return new WaitForSeconds(nextBornTime);
}
}
void Start(){
StartCoroutine(BornEnemy); //开启协程
}