您的位置:首页 > 移动开发 > Unity3D

Unity敌人生成点的代码

2017-07-17 09:22 295 查看
这段代码是放到一个空节点上

//玩家
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity