Unity实现物体的动态生成与删除

当我们用Unity开发游戏的时候,怎么能动态的实现怪物的生成与删除。

get到了一种用for循环的方法来实现

首先定义一下生成需要的值

public GameObject _enemyship;//接收需要加载的物体

public int enemyCount;//定义生成的个数

public float WaitTime; //定义一个时间,让怪物在游戏开始一段时间后才开始加载

public float  NextTime;//生成下一波怪物的时间间隔

void Start()

{

StartCoroutine(spawnWaves());//定义一个协同函数来限制怪物产生的时间

}

IEnumerator spawnWaves()

{

 yield return new WaitForSeconds(WaitTime); //在游戏开始后会在waittime时间后才开始执行

while(true)

{

for(int i=0;i

{

Vector3 shipPosition = new Vector3(Random.Range(-1000, 1000), Random.Range(-1000,1000), Random.Range(-1000, 1000));//设置生成物体的随机坐标
Quaternion shipRotation = Quaternion.Euler(Random.Range(-180,180), Random.Range(-180, 180), Random.Range(-180, 180));//设置生成物体的随机角度

Instantiate(_enemyShip, shipPosition, shipRotation);//生成物体

 yield return new WaitForSeconds(spawnTime);//限制生成时间间隔

}

}

}


这样我们便完成了怪物的动态创建,但是这样的创建时无止境的。所以我们可以在物体的身上创建一个脚本,达到某种条件使他消失

比如用时间来定义

public float lifetime;//定义一个消失的时间

void Start()

{

Destroy(gameObject,lifetime);//达到时间自动消除。

}


你可能感兴趣的:(Unity3D)