在我们玩的所有游戏中,都会遇到在某个范围内怪物会侦测到玩家,并追随玩家,在和玩家一定距离后会发动攻击,但是逃过这个范围玩家就不会受伤了。综上,就是怪物的警戒范围和攻击范围。

1.警戒范围

如图,是作者的Monster,蓝色是警戒范围,红色是攻击范围。

一般我们选择圆来成为我们的警戒范围,圆的半径始终是不变的,因此更加人性化,更适合我们操作。

首先导入using UnityEditor;

接下来我们要定义角度和半径

[Range(0, 10)]
public float AlertRadius;//半径

[Range(0, 360)]

public float Alertangle;//角度

 //====================================================================//绘制警戒范围private void OnDrawGizmos(){Color color = Handles.color;Handles.color = Color.blue;Vector3 StartLine = Quaternion.Euler(0, -Alertangle, 0) * this.transform.forward;Handles.DrawSolidArc(this.transform.position,this.transform.up,StartLine, Alertangle, AlertRadius);Handles.color = color;   }//====================================================================

绘制好警戒范围之后,我们就可以进行判断了,判断Player是否在警戒范围内

首先我们要定义一个布尔变量,用来判断是否进入范围,然后触发事件。

public bool Alertistrue = false;

其他代码如下:

//====================================================================//警戒void Alert() {float distance = Vector3.Distance(this.transform.position,target.transform.position);Vector3 vector3 = target.transform.position - this.transform.position;float angle = Vector3.Angle(vector3,this.transform.forward);if (distance <= AlertRadius && angle <= Alertangle){Alertistrue = true;}else {Alertistrue = false;}}//====================================================================

代码是通过判断距离和角度来进行判断是否进入范围的,很好理解。

其他的事件代码就不再贴啦,可以自己发挥能力去写,布尔变量Alertistrue就在这时起作用了。

2.攻击范围

和警戒范围几乎一致,这里就不再细说,大家分清两个范围内触发的事件就OK啦

Unity笔记——如何使怪物拥有警戒范围和攻击范围相关推荐

  1. 【Unity笔记】使物体(船)漂浮在水面上——浮力

    在官方论坛看到一个关于怎么使物体漂浮在水面上的讨论:https://forum.unity3d.com/threads/floating-a-object-on-water.31671/ 水动力系统 ...

  2. 使窗体拥有透明效果的API

    一.背景FlashGet的透明效果大家羡慕吧.传统的Windows应用程序想实现半透明效果,一般来说需要处理自己的窗口的WM_Paint消息窗口,很麻烦.现在好了,SetLayeredWindowAt ...

  3. Houdini流体>>粒子流体导出到unity笔记

    Houdini流体>>Houdini流体导出到unity笔记 一.参考资料: 1.unity中流体案例项目连接:(可选HDRP 和URP管线) https://github.com/kei ...

  4. unity塔防游戏怪物转向_怪兽塔防手机版下载-怪兽塔防游戏下载v1.4 安卓版

    怪兽塔防,融入大量呆萌怪物玩法的经典塔防手游,游戏中玩家需要不断应对来袭的敌人,游戏中玩家需要在关卡中放置武器进行防御,游戏十分考验玩家的反应力与应变能力,游戏玩法挑战性十足,感兴趣的玩家可以下载体验 ...

  5. Unity笔记-25-简单的商城系统数据库操作

    Unity笔记-25-简单的商城系统&数据库操作 要求与分析 英雄属性界面 展示英雄头像,英雄名称,英雄属性(AD,AP,AR,SR,自左向右,自上向下),金币数量 商店界面 展示可购买的物品 ...

  6. 使电脑拥有公网ip方法

    先判断是否有公网ip 在搜索引擎中输入ip,会进入到检测 ip的网站,然后用检测出来的ip访问自已的服务顺,如果能访问就证明有公网ip. 使电脑拥有公网ip的方法 情况一 家里拉的宽带是有公网ip的, ...

  7. Unity笔记(5):Make Character Animation【2D】

    目录 1.新建项目 2.导入资源 复习一下前两篇笔记: 3.搭建场景 4.控制角色移动 5.制作角色动画 发现问题: 解决问题: 1.新建项目 2.导入资源 Sunny Land | 2D Chara ...

  8. Demo_塔防(自动生成怪物,导航,炮塔攻击,怪物掉血死忙)

    using UnityEngine; using System.Collections;public struct WaveMsg {//该波次生成的怪物public GameObject monst ...

  9. NuGet学习笔记(2) 使用图形化界面打包自己的类库

    上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...

最新文章

  1. popwindow下拉筛选 二级联动_职场人必备!一分钟搞定Excel二级联动下拉菜单
  2. 【c语言】蓝桥杯算法提高 输出三个整数的最大数
  3. Android系统如何管理自己内存的?
  4. 只有当前用户或管理员能登录到此计算机,当前登录的用户没有管理员权限。请重新以管理员身份登录,或与您的pc管理员联系。...
  5. 介绍java常用的两种注释类型,全网独家首发!
  6. java解析java源码_JAVA语言-Java源码解析-Stack源码分析
  7. 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统
  8. 各银行汇款手续费之比较
  9. rtthread pwm设备控制led小灯亮度
  10. c语言共享内存储存结构体,C语言共享内存使用思路利用结构体
  11. [cerc2012][Gym100624A]20181013
  12. jquery的颜色选择插件实例代码
  13. 2021年Web前端开发的趋势有哪些
  14. 64位电脑安装32位系统不能引导启动
  15. 旁听硕士答辩——爱立信,WireShark,GGSN
  16. 【Python】5行代码缩小图片尺寸
  17. Android9.0 网络安全配置文件
  18. linux shell ifs,【shell】IFS和$*变量
  19. 大数据开发认知--spark
  20. 一个专家级软件架构师的自白书

热门文章

  1. 计算机科学与工程学院学位,山东科技大学-计算机科学与工程学院
  2. 自然语言处理6 -- 情感分析
  3. 从麻花影视的抓包看app防http抓包方式
  4. 蓝牙架构(3)—— 1 蓝牙概述 (1.3 AMP概述 1.4 术语命名 1.5 总结)
  5. 黑龙江省网吧计算机经营管理系统,黑龙江省网吧计算机经营管理系统监管中心建设标准.docx...
  6. 微信小程序逆向分析浅析
  7. Sysinternals系列工具之ZoomIt(电子教鞭)
  8. AttributeError: module ‘dill._dill‘ has no attribute ‘stack‘
  9. Highcharts导出图片
  10. k8s学习-CKA真题-Etcd数据库备份恢复