Unity3D:实例化物体

本文介绍了Unity中游戏对象的两种生成方式:事件生成与固定生成。事件生成适用于子弹发射等即时操作,通过检测输入并在指定位置生成克隆体实现。固定生成则常用于周期性生成怪物或敌人,利用协程配合WaitForSeconds实现定时生成。

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);	//开启协程
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值