Unity3D:实例化物体

版权声明:本文为博主原创文章,未经博主允许不得转载。 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);	//开启协程
}

猜你喜欢

转载自blog.csdn.net/wang_lvril/article/details/80626201