塔防游戏是非常经典的游戏 它的玩法也比较简单 一波接着一波的怪物出来  怪物沿着固定的路线行走 玩家需要控制攻击塔在怪物到达终点时 将它消灭 否则 到达终点的怪物超过一定的数量 玩家就输了

一、每一波的怪物的属性是不同的 比如说 它的移动速度 生命值、怪物数量等。

二、需要设置一共多小波 每一波出现的时间间隔 每一波怪物间的间隔

让我们开始吧:

1. 先确定好两个位置 一个是怪物出现的位置 一个是怪物行走的终点位置

2. 创建怪物预设体  给怪物加上控制脚本 代码如下:usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

usingUnityEngine.AI;// 波次结构体

public struct Wave

{

//波次间隔

public float waveInterval;

//怪物间隔

public float monsterInterval;

//怪物个数

public int monsterCount;

//怪物移动速度

public float monsterSpeed;

//怪物血量

public float monsterHealth;

}public class MonsterInit:MonoBehaviour{

//怪物出生点

publicTransformbegin;

//怪物预设体

public GameObject monsterPrefab;

//波次

public int waveCount=10;

//波次数组

public Wave[] waves;

//可以初始化

private bool canInit=true;

//计数器、计时器

private float waveTimer=0;

private float monsterTimer=0;

private int waveIndex=0;

private int monsterIndex=0;void Awake()

{

// 初始化数组

waves=new Wave[waveCount];

}

思路如下:每一波的怪物会越来越强 那么我我就以第一波为为基础 然后在循环设置接下来的每一波 每一波在每一波的基础上去增强属性。

voidStart()

{

//设置第一波怪的信息

waves[0].waveInterval=5f;

waves[0].monsterInterval=1.5f;

waves[0].monsterCount=5;

waves[0].monsterSpeed=0.3f;

waves[0].monsterHealth=100;

for(inti=1;i

{

waves[i].waveInterval=waves[0].waveInterval-i*0.1f;

waves[i].monsterInterval=waves[0].monsterInterval-i*0.1f;

waves[i].monsterCount=waves[0].monsterCount+i;

waves[i].monsterSpeed=waves[0].monsterSpeed+i*0.2f;

waves[i].monsterHealth=waves[0].monsterHealth+i*10f;

}

}

//Updateiscalledonceperframe

voidUpdate(){

if(!canInit)

return;

waveTimer+=Time.deltaTime;

if(waveTimer>=waves[waveIndex].waveInterval)

{

//如果当期波次的怪物没有生成完毕

if(monsterIndex

//怪物计时器计时

monsterTimer+=Time.deltaTime;

if(monsterTimer>=waves[waveIndex].monsterInterval){

GameObjectcurrentMonster=Instantiate(monsterPrefab,begin.position,Quaternion.identity);

//设置怪物导航速度

currentMonster.GetComponent().speed=waves[waveIndex].monsterSpeed;

//怪物计数器++

monsterIndex++;

//怪物计时器归零

monsterTimer=0;

//Debug.Log("初位置"+begin.position);

}

}

else

{

//波次++

waveIndex++;

//怪物计数器归零

monsterIndex=0;

//波次计时器归零

waveTimer=0;

//怪物计时器归零

monsterTimer=0;

if(waveIndex>=waveCount){

canInit=false;

}

}

}

}

}

unity怪物攻击玩家减血_Unity-塔防游戏之怪物波次简单算法相关推荐

  1. unity怪物攻击玩家减血_Unity RPG游戏攻击的判定

    在一个游戏里面,最重要的要数那些算法了.比如追击AI算法,寻路算法.一个优质的算法能让你的游戏体验更好.那么在RPG游戏里面,我们玩家角色的普攻一般情况下,如果选择的人物是那种剑士职业的(这里打个比方 ...

  2. unity怪物攻击玩家减血_利用Unity协程实现一个简单的怪物寻路与跟随AI

    利用Unity协程实现一个简单的怪物寻路与跟随AI,通过分析怪物行为与逻辑,实现简单的平面怪物寻路与跟随效果. 分析 对于游戏中怪物的行为,简单归纳为如下几部分: 怪物在预设范围内随机移动. 玩家走入 ...

  3. unity怪物攻击玩家减血_Unity3D 战斗系统中的怪物简单AI(简单AOI)

    AI With Monster In Battle System Introduction 一款RPG的战斗模块中,怪物AI是又一基础单元.在经典的即时战斗中,比较简单的流程是角色进入怪物的仇恨范围- ...

  4. unity塔防游戏怪物转向_浅谈塔防游戏的“进化史”,独特创意把“策略至上”推到新的高度...

    塔防游戏的起源是一款叫<堡垒>的街机游戏,虽然说该游戏和目前的塔防游戏还有一些区别,但是目前的塔防游戏基本上都有借鉴这个游戏的内容,说它是塔防游戏的鼻祖也不为过.真正把塔防游戏带到大家面前 ...

  5. unity怪物攻击玩家减血_热血传奇:游戏里要千万小心的小怪,玩家稍有不慎就要吃大亏...

    热血传奇这款网游当中,除了形形色色的武器和装备之外,或许数量较多的就是地图当中的各式各样怪物了,在这其中有怪物也是大的BOSS,有的很容易就可以解决的.像新手任务的钉耙猫.鹿.半兽:还有像例如赤月恶魔 ...

  6. unity怪物攻击玩家减血_怪物猎人发布15周年 — 回顾历代封面怪之三大传奇怪物...

    本文来自Jump用户投稿,作者:水熊 2019年3月正逢怪物猎人发布15周年之际,CAPCOM官方网站公布了本次15周年庆典的主题图片. (转自CAPCOM官网,本次15周年主题图片为历代怪物猎人作品 ...

  7. unity塔防游戏怪物转向_红包版塔防游戏合集-可以赚钱领红包的塔防游戏-无广告塔防游戏红包版大全...

    家园保卫战红包版等级:9.22020-11-1016.7MB简体中文下载推荐理由:家园保卫战红包版是一款全新塔防赚钱小游戏,和植物大战僵尸画风有些相似,只不过这款游戏增加了红包版机制,每次闯关成功都有 ...

  8. unity怪物攻击玩家减血_像素地牢开发(unity) 第一篇(并不是第一天)

    像素地牢开发(unity) 第一篇(并不是第一天) 大二的时候就特别想制作独立游戏,每次逛b站刷到独立游戏制作的视频就十分羡慕,然鹅我却一直鸽着(别问,问就是刷视频,打王者),但我还是利用了一些空闲时 ...

  9. unity怪物攻击玩家减血_unity3d学习笔记(七)利用单例脚本实现英雄与怪物的攻击与受击...

    本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢. http://blog.csdn.net/lzhq1982/article/details/12653945 我们的世界有了 ...

  10. unity怪物攻击玩家减血_Unity3d 怪物死亡燃烧掉效果

    效果 BurnToFadeOut.shader代码 Shader "BurnToFadeOut" { Properties { _StartColor ("Start C ...

最新文章

  1. 确定NTFS权限应用的位置
  2. Android Service演义
  3. 在控制台中输入月,日. 计算这是一年的第几天.(Python)
  4. 线段树专题-黑白棋盘 BZOJ-1453
  5. SpringBoot—Entity父子类表@Inheritance和@MappedSuperclass
  6. LintCode 820. 矩形
  7. html元素上下移动,一个可以上下摆动的html元素
  8. C#轻量级通通讯组件StriveEngine —— C/S通信开源demo(2) —— 使用二进制协议 (附源码)...
  9. SSM、SSH框架原理
  10. 计算机黑屏然后蓝屏怎么办,突然蓝屏死机开机黑屏怎么办_蓝屏之后重启屏幕黑屏的解决方法...
  11. 电影:少年派的奇幻漂流(Life of Pi)
  12. 虚拟贴图理论篇之Texture Filtering
  13. I2C器件的从设备地址的设置(以AT24C02为例)
  14. 高度自适应布局 flew伸缩布局
  15. Linux中EOF用法
  16. 女子手机流量一夜疯跑了50GB
  17. 多个USB转串口设备区分方法
  18. 开心网 开心网 到底哪个是开心网?
  19. 不同版本iOS的特性和差异
  20. 访完美世界副总裁佟庆:游戏开发如何运用人工智能技术?

热门文章

  1. reviewboard--ubuntu安装reviewboard
  2. u盘linux反应好慢,识别U盘很缓慢怎么办的八种解决方法
  3. beyond compare软件安装与破解
  4. 作业2:健身类软件调研
  5. 计算机10进制213.375怎样转化为二进制,2进制转10进制(二进制怎么算)
  6. Win10如何把D盘空间分给C盘|Win10硬盘分成多个分区
  7. css transition ease,css3 transition属性
  8. angular 万年历_世界豪华手表
  9. 内核block层IO调度器—bfq算法深入探索2
  10. POJ 小白算法学习 任重而道远