Unity_塔防游戏(2)_生成每波怪物
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)_生成每波怪物相关推荐
- 单机塔防游戏推荐_电脑高自由度单机游戏推荐
大家好,今天给大家推荐几个单机游戏吧,都是一些开放世界的单机游戏,电脑和主机都可以玩的,主要是电脑配置都不是很高,有的游戏笔记本都可以流畅玩耍,可以保持60帧数,好了,我们一起来看看吧. 5.< ...
- Unity_塔防游戏(7)敌人炮塔之间的Collider碰撞优化
1.给炮塔Turret添加刚体和碰撞器: 2.给敌人和炮塔 添加两个层 Turret 和 Enemy 完成上面两部 再给 游戏prefab预制体 加上Turret 和 Enemy 层标签 3.Edit ...
- Unity_塔防游戏按波产生怪(协程实现)_064
在前面的案例中里面充斥者两个计时器,维护起代码来说相对比较复杂,接下来我们使用协程来实现产生怪的逻辑 using UnityEngine; using System.Collections;publi ...
- unity塔防游戏怪物转向_怪兽塔防手游下载-怪兽塔防官方版v1.0下载
怪兽塔防官方版是一款画风Q萌的塔防手游,怪兽塔防里有很多可爱的怪物,保护你身后的城堡,不断到来的敌人会对你造成极大的威胁,你可以通过在固定的位置放置武器进行防御,这将考验你对紧急情况的反应和应对能力, ...
- 微信塔防小游戏开发教程,唤境引擎制作塔防游戏分享
今天带来的是塔防游戏制作攻略! 点击这里来下载工程文件, 点击这里可以下载工程中所用的素材哦~ 预览状态时敌人会从四个生成点随机生成,并且会自动寻路绕过黑色墙体走向红色终点.点击黑色墙体可以创建炮塔, ...
- GemCraft Labyrinth:超耐玩的在线flash塔防游戏
GemCraft Labyrinth是一个在线flash塔防游戏,中文名字可以理解为宝石塔防.这个游戏拥有众多的关卡(169关),所以和植物大战僵尸一样十分的耐玩,除此之外,独特的宝石合成模式.技能点 ...
- unity塔防游戏怪物转向_玩一玩这款塔防游戏?
关注上方蓝字获得更多内容 今日分享塔防游戏 塔防游戏,曾经也是风靡一时,非常受人喜欢的. 今天小皮分享的这款和保卫萝卜可以说是异曲同工,还是不错的. 该游戏拥有精美的画面,并且在形象设计上也制作的相当 ...
- unity塔防游戏怪物转向_英雄塔防物语游戏下载-英雄塔防物语官方版 v2.3.8最新版...
英雄塔防物语手游欢迎大家来下载,英雄塔防物语是一款二次元塔防放置手游,这款游戏为大家带来全新的角色,玩家可以收集卡牌进行组合对战,玩法十分丰富,还有丰富的剧情等你来解锁哦. [游戏简介] 英雄塔防物语 ...
- unity塔防游戏怪物转向_野生防御塔游戏下载-野生防御塔游戏安卓版 v1.0
野生防御塔是一款塔防策略类型的游戏,经典好玩的塔防策略玩法等你来,在这开启一场刺激的塔防吧.你需要依靠塔防建筑抵挡怪物的攻击,同时也需要面对对手的偷袭.依靠击杀怪物获得的金币可以购买一些道具升级你的塔 ...
最新文章
- eclipse中代码没错但项目名称有个小红X
- opencv图像处理总结
- ldap基本dn_2020年,手把手教你如何在CentOS7上一步一步搭建LDAP服务器的最新教程...
- JavaScript进阶5-学习笔记
- Hyper-V + CentOS7 网络设置(视频教程)
- 论文学习4-An Attentive Neural Architecture for Fine-grained Entity Type Classification
- 新加入一个团体,如何能尽快的展开测试工作(转载)
- JSP中EL表达式不起作用
- unity 切换场景
- 【数字信号】基于GUI数字波束算法库【含Matlab源码 313期】
- 【CF1107G】Vasya and Maximum Profit(单调栈/单调栈+线段树最大子段和)
- 机房黑科技:京东数科机房巡检机器人
- Tungsten Fabric解决方案指南-Gateway MX
- android 拼图游戏2(可从手机选择任意一张图片)
- 戴尔服务器虚拟机巨兽龙在哪,dell服务器安装的vmware esxi 虚拟机紫萍
- boss金服:点买系统的基本解答
- 计算机图形学矩形_《交互式计算机图形学》读书笔记 —— 第一章、图形系统和模型...
- 新一代iPad Pro外形泄露:方形后摄瞩目
- 最新版校园招聘进大厂系列----------(1)阿里篇 -----未完待续
- Linux SPI 驱动
热门文章
- android8.1模拟器 黑屏,Win 8/8.1系统使用天天安卓模拟器无法开启虚拟化解决方法...
- word文档怎样使用计算机,电脑Word文档怎么将旭日图插入使用
- 蜜雪冰城申请注册“雪王胖胖”,经营范围不止冰饮
- cocos creator 动画编辑器以及骨骼动画的使用
- 西门子atch指令详解_西门子plc指令大全详解
- Android Qcom Display学习(十)
- html圆形边框怎么弄,CSS怎样做出自适应圆形边框?
- VMware虚拟机NAT模式配置静态IP
- adb 屏幕滑动_安卓通过adb 模拟键盘输入、点击屏幕、滑动、按键
- javascript中canvas画爱心