赞
踩
这段代码是放到一个空节点上
//玩家
GameObject m_Player;
//出生点和玩家的位置距离
float m_Distance;
//敌人的预支体
public Transform m_Enemy;
//敌人生成的数量
public int m_EnemyCount = 0;
//敌人生成最大数量
public int m_EnemyMax;
//敌人生成的时间间隔
public float m_EnemyTime = 0;
protected Transform m_transform;
// Use this for initialization
void Start () {
m_transform = this.transform;
m_Player = GameObject.FindGameObjectWithTag("Player");
}
// Update is called once per frame
void Update()
{
m_Distance = Vector3.Distance(gameObject.transform.position, m_Player.transform.position);
//让玩家与出生点距离小于等于500时开始创建克隆
if (m_Distance <= 150)
{
//如果生成敌人的数量达到最大值 停止生成敌人
if (m_EnemyCount >= m_EnemyMax)
{
return;
}
//时间间隔
m_EnemyTime -= Time.deltaTime;
//生成时间小于0时
if (m_EnemyTime <= 0)
{
//重置生成时间
m_EnemyTime = Random.Range(0, 5f);
//生成敌人
Transform transformEnemy = (Transform)Instantiate(m_Enemy, m_transform.position, Quaternion.identity);
//获取敌人脚本
Enemy enemy = transformEnemy.GetComponent<Enemy>();
//初始化敌人
enemy.Init(this, 1);
}
}
else
{
return;
}
}
下面这段代码是放到你的敌人预制体上面
// 出生标志
protected EnemySpawn m_spawn;
/// <summary>
/// 每创建一个敌人,敌人数加1
/// </summary>
/// <param name="spawn"></param>
public void Init(EnemySpawn spawn,int a)
{
m_spawn = spawn;
m_spawn.m_EnemyCount += a;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。