1.编写保存每波怪物属性的类Wave:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;//生成每波敌人 保存的属性 不需要继承组建 MonoBehaviour
[System.Serializable]  //实现序列化 可以在属性面板展开
public class Wave
{//敌人public GameObject EnemyPrefab;//敌人的个数public int EnemyCount;//生成没一波敌人之间的 间隔public float interval;
}

2.创建生成每波敌人的类EnemySpawner:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class EnemySpawner : MonoBehaviour
{//定义一个敌人存活的数量public static int EnemyLiveCount = 0;//每一波 类点数组public Wave[] waves;//敌人生成的开始点public Transform SpawnerEnemyStartPos;// Start is called before the first frame updatevoid Start(){//启动迭代器StartCoroutine(SpawerEnemy());}//迭代器private IEnumerator SpawerEnemy() {//依次循环第几波foreach (Wave wave in waves){//依次循环 第几波的 第几个敌人for (int i = 0; i < wave.EnemyCount; i++){//生成敌人GameObject.Instantiate(wave.EnemyPrefab,SpawnerEnemyStartPos.position, Quaternion.identity);//敌人存活的数量EnemyLiveCount++;//不是最后一波就暂停if (i != waves.Length - 1) {//生成一个敌人后 暂停多少秒 再继续生成yield return new WaitForSeconds(wave.interval);}}//如果场上还有敌人 存活就不出 下一波怪物while (EnemyLiveCount > 0){yield return 0;}//生成每一波 敌人之间的 时间间隔yield return new WaitForSeconds(0.2f);}}
}

3.创建GameObject 命名为 GameManager,将EnemySpawner脚本拖拽上去,然后将游戏物体依次拖拽,关联起来:

4.如果想使一波敌人 走到终点销毁完才出现下一波敌人,加上代码:

            //如果到达了 终点怪物就销毁
            if (index > positions.Length-1) {
                Destroy(this.gameObject);
                //敌人数量存活-1
                EnemySpawner.EnemyLiveCount--;
            }

using System.Collections;
using System.Collections.Generic;
using UnityEngine;//敌人移动类
public class MeneyMoving : MonoBehaviour
{private Transform[] positions;public int index = 0;public float speed = 2f;// Start is called before the first frame updatevoid Start(){//获取路径点 数组positions = WayPoint.wayPoint;}// Update is called once per framevoid Update(){//调用敌人移动方法Moving();}void Moving() {//如果index小于 路径点数组点最大下标 就继续移动if (index <= positions.Length - 1) {//获得 单位向量transform.Translate((positions[index].position - transform.position).normalized * Time.deltaTime * speed);if (Vector3.Distance(positions[index].position, transform.position) <= 1f){index++;}//如果到达了 终点怪物就销毁if (index > positions.Length-1) {Destroy(this.gameObject);//敌人数量存活-1EnemySpawner.EnemyLiveCount--;}}}
}

WayPoint类的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class WayPoint : MonoBehaviour
{//创建一个数组 用来保存 路径点public static Transform[] wayPoint;private void Awake(){//给 保存路径点的数组 长度wayPoint = new Transform[transform.childCount];//将路径点 依次存入数组for (int i = 0; i < wayPoint.Length; i++){wayPoint[i] = transform.GetChild(i);Debug.Log("wayPoint:"+wayPoint[i]);}}
}

Unity_塔防游戏(2)_生成每波怪物相关推荐

  1. 单机塔防游戏推荐_电脑高自由度单机游戏推荐

    大家好,今天给大家推荐几个单机游戏吧,都是一些开放世界的单机游戏,电脑和主机都可以玩的,主要是电脑配置都不是很高,有的游戏笔记本都可以流畅玩耍,可以保持60帧数,好了,我们一起来看看吧. 5.< ...

  2. Unity_塔防游戏(7)敌人炮塔之间的Collider碰撞优化

    1.给炮塔Turret添加刚体和碰撞器: 2.给敌人和炮塔 添加两个层 Turret 和 Enemy 完成上面两部 再给 游戏prefab预制体 加上Turret 和 Enemy 层标签 3.Edit ...

  3. Unity_塔防游戏按波产生怪(协程实现)_064

    在前面的案例中里面充斥者两个计时器,维护起代码来说相对比较复杂,接下来我们使用协程来实现产生怪的逻辑 using UnityEngine; using System.Collections;publi ...

  4. unity塔防游戏怪物转向_怪兽塔防手游下载-怪兽塔防官方版v1.0下载

    怪兽塔防官方版是一款画风Q萌的塔防手游,怪兽塔防里有很多可爱的怪物,保护你身后的城堡,不断到来的敌人会对你造成极大的威胁,你可以通过在固定的位置放置武器进行防御,这将考验你对紧急情况的反应和应对能力, ...

  5. 微信塔防小游戏开发教程,唤境引擎制作塔防游戏分享

    今天带来的是塔防游戏制作攻略! 点击这里来下载工程文件, 点击这里可以下载工程中所用的素材哦~ 预览状态时敌人会从四个生成点随机生成,并且会自动寻路绕过黑色墙体走向红色终点.点击黑色墙体可以创建炮塔, ...

  6. GemCraft Labyrinth:超耐玩的在线flash塔防游戏

    GemCraft Labyrinth是一个在线flash塔防游戏,中文名字可以理解为宝石塔防.这个游戏拥有众多的关卡(169关),所以和植物大战僵尸一样十分的耐玩,除此之外,独特的宝石合成模式.技能点 ...

  7. unity塔防游戏怪物转向_玩一玩这款塔防游戏?

    关注上方蓝字获得更多内容 今日分享塔防游戏 塔防游戏,曾经也是风靡一时,非常受人喜欢的. 今天小皮分享的这款和保卫萝卜可以说是异曲同工,还是不错的. 该游戏拥有精美的画面,并且在形象设计上也制作的相当 ...

  8. unity塔防游戏怪物转向_英雄塔防物语游戏下载-英雄塔防物语官方版 v2.3.8最新版...

    英雄塔防物语手游欢迎大家来下载,英雄塔防物语是一款二次元塔防放置手游,这款游戏为大家带来全新的角色,玩家可以收集卡牌进行组合对战,玩法十分丰富,还有丰富的剧情等你来解锁哦. [游戏简介] 英雄塔防物语 ...

  9. unity塔防游戏怪物转向_野生防御塔游戏下载-野生防御塔游戏安卓版 v1.0

    野生防御塔是一款塔防策略类型的游戏,经典好玩的塔防策略玩法等你来,在这开启一场刺激的塔防吧.你需要依靠塔防建筑抵挡怪物的攻击,同时也需要面对对手的偷袭.依靠击杀怪物获得的金币可以购买一些道具升级你的塔 ...

最新文章

  1. eclipse中代码没错但项目名称有个小红X
  2. opencv图像处理总结
  3. ldap基本dn_2020年,手把手教你如何在CentOS7上一步一步搭建LDAP服务器的最新教程...
  4. JavaScript进阶5-学习笔记
  5. Hyper-V + CentOS7 网络设置(视频教程)
  6. 论文学习4-An Attentive Neural Architecture for Fine-grained Entity Type Classification
  7. 新加入一个团体,如何能尽快的展开测试工作(转载)
  8. JSP中EL表达式不起作用
  9. unity 切换场景
  10. 【数字信号】基于GUI数字波束算法库【含Matlab源码 313期】
  11. 【CF1107G】Vasya and Maximum Profit(单调栈/单调栈+线段树最大子段和)
  12. 机房黑科技:京东数科机房巡检机器人
  13. Tungsten Fabric解决方案指南-Gateway MX
  14. android 拼图游戏2(可从手机选择任意一张图片)
  15. 戴尔服务器虚拟机巨兽龙在哪,dell服务器安装的vmware esxi 虚拟机紫萍
  16. boss金服:点买系统的基本解答
  17. 计算机图形学矩形_《交互式计算机图形学》读书笔记 —— 第一章、图形系统和模型...
  18. 新一代iPad Pro外形泄露:方形后摄瞩目
  19. 最新版校园招聘进大厂系列----------(1)阿里篇 -----未完待续
  20. Linux SPI 驱动

热门文章

  1. android8.1模拟器 黑屏,Win 8/8.1系统使用天天安卓模拟器无法开启虚拟化解决方法...
  2. word文档怎样使用计算机,电脑Word文档怎么将旭日图插入使用
  3. 蜜雪冰城申请注册“雪王胖胖”,经营范围不止冰饮
  4. cocos creator 动画编辑器以及骨骼动画的使用
  5. 西门子atch指令详解_西门子plc指令大全详解
  6. Android Qcom Display学习(十)
  7. html圆形边框怎么弄,CSS怎样做出自适应圆形边框?
  8. VMware虚拟机NAT模式配置静态IP
  9. adb 屏幕滑动_安卓通过adb 模拟键盘输入、点击屏幕、滑动、按键
  10. javascript中canvas画爱心