首先在场景中窗前一个空物体empty

将其设置为预置prefab。然后创建一个脚本来控制他。
在编写脚本的时候需要注意的几点是 1.怪物生成的间隔2.怪物生成的种类3.怪物生成的数量 是要设置为public变量,方便后期的配置。
另外还要有计数器、以及判断玩家是否存活的函数。
伍晓波老师的第三人称射击游戏制作的课程中的怪物自动生成的代码如下。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BornPot : MonoBehaviour {
//该出生点生成的怪物
public GameObject targetEnemy;
//生成怪物的总数量
public int enemyTotalNum = 10;
//生成怪物的时间间隔
public float intervalTime = 3;
//生成怪物的计数器
private int enemyCounter;
//玩家
private GameObject targetPlayer;
//生成怪物的计数器
// Use this for initialization
void Start () {
//玩家
targetPlayer = GameObject.FindGameObjectWithTag("Player");
//初始时,怪物计数为0;
enemyCounter = 0;
//重复生成怪物
InvokeRepeating("CreatEnemy", 0.5F, intervalTime);
}
// Update is called once per frame
void Update () {
}
//方法,生成怪物
private void CreatEnemy()
{
//如果玩家存活
if (targetPlayer.GetComponent<Player>().currentHp > 0)
{
//生成一只怪物
Instantiate(targetEnemy, this.transform.position, Quaternion.identity);
enemyCounter++;
//如果计数达到最大值
if (enemyCounter == enemyTotalNum)
{
//停止刷新
CancelInvoke();
}
}
//玩家死亡
else
{
//停止刷新
CancelInvoke();
}
}
}
本文介绍了一个基于Unity的游戏开发教程,详细讲解了如何创建怪物自动生成系统。通过使用空物体作为预置,设置怪物生成的间隔、种类和数量,以及实现计数器和玩家存活状态的检查。代码示例展示了如何利用InvokeRepeating和Instantiate方法实现这一功能。
2655

被折叠的 条评论
为什么被折叠?



