Unity笔记——如何使怪物拥有警戒范围和攻击范围
在我们玩的所有游戏中,都会遇到在某个范围内怪物会侦测到玩家,并追随玩家,在和玩家一定距离后会发动攻击,但是逃过这个范围玩家就不会受伤了。综上,就是怪物的警戒范围和攻击范围。
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笔记——如何使怪物拥有警戒范围和攻击范围相关推荐
- 【Unity笔记】使物体(船)漂浮在水面上——浮力
在官方论坛看到一个关于怎么使物体漂浮在水面上的讨论:https://forum.unity3d.com/threads/floating-a-object-on-water.31671/ 水动力系统 ...
- 使窗体拥有透明效果的API
一.背景FlashGet的透明效果大家羡慕吧.传统的Windows应用程序想实现半透明效果,一般来说需要处理自己的窗口的WM_Paint消息窗口,很麻烦.现在好了,SetLayeredWindowAt ...
- Houdini流体>>粒子流体导出到unity笔记
Houdini流体>>Houdini流体导出到unity笔记 一.参考资料: 1.unity中流体案例项目连接:(可选HDRP 和URP管线) https://github.com/kei ...
- unity塔防游戏怪物转向_怪兽塔防手机版下载-怪兽塔防游戏下载v1.4 安卓版
怪兽塔防,融入大量呆萌怪物玩法的经典塔防手游,游戏中玩家需要不断应对来袭的敌人,游戏中玩家需要在关卡中放置武器进行防御,游戏十分考验玩家的反应力与应变能力,游戏玩法挑战性十足,感兴趣的玩家可以下载体验 ...
- Unity笔记-25-简单的商城系统数据库操作
Unity笔记-25-简单的商城系统&数据库操作 要求与分析 英雄属性界面 展示英雄头像,英雄名称,英雄属性(AD,AP,AR,SR,自左向右,自上向下),金币数量 商店界面 展示可购买的物品 ...
- 使电脑拥有公网ip方法
先判断是否有公网ip 在搜索引擎中输入ip,会进入到检测 ip的网站,然后用检测出来的ip访问自已的服务顺,如果能访问就证明有公网ip. 使电脑拥有公网ip的方法 情况一 家里拉的宽带是有公网ip的, ...
- Unity笔记(5):Make Character Animation【2D】
目录 1.新建项目 2.导入资源 复习一下前两篇笔记: 3.搭建场景 4.控制角色移动 5.制作角色动画 发现问题: 解决问题: 1.新建项目 2.导入资源 Sunny Land | 2D Chara ...
- Demo_塔防(自动生成怪物,导航,炮塔攻击,怪物掉血死忙)
using UnityEngine; using System.Collections;public struct WaveMsg {//该波次生成的怪物public GameObject monst ...
- NuGet学习笔记(2) 使用图形化界面打包自己的类库
上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...
最新文章
- popwindow下拉筛选 二级联动_职场人必备!一分钟搞定Excel二级联动下拉菜单
- 【c语言】蓝桥杯算法提高 输出三个整数的最大数
- Android系统如何管理自己内存的?
- 只有当前用户或管理员能登录到此计算机,当前登录的用户没有管理员权限。请重新以管理员身份登录,或与您的pc管理员联系。...
- 介绍java常用的两种注释类型,全网独家首发!
- java解析java源码_JAVA语言-Java源码解析-Stack源码分析
- 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统
- 各银行汇款手续费之比较
- rtthread pwm设备控制led小灯亮度
- c语言共享内存储存结构体,C语言共享内存使用思路利用结构体
- [cerc2012][Gym100624A]20181013
- jquery的颜色选择插件实例代码
- 2021年Web前端开发的趋势有哪些
- 64位电脑安装32位系统不能引导启动
- 旁听硕士答辩——爱立信,WireShark,GGSN
- 【Python】5行代码缩小图片尺寸
- Android9.0 网络安全配置文件
- linux shell ifs,【shell】IFS和$*变量
- 大数据开发认知--spark
- 一个专家级软件架构师的自白书
热门文章
- 计算机科学与工程学院学位,山东科技大学-计算机科学与工程学院
- 自然语言处理6 -- 情感分析
- 从麻花影视的抓包看app防http抓包方式
- 蓝牙架构(3)—— 1 蓝牙概述 (1.3 AMP概述 1.4 术语命名 1.5 总结)
- 黑龙江省网吧计算机经营管理系统,黑龙江省网吧计算机经营管理系统监管中心建设标准.docx...
- 微信小程序逆向分析浅析
- Sysinternals系列工具之ZoomIt(电子教鞭)
- AttributeError: module ‘dill._dill‘ has no attribute ‘stack‘
- Highcharts导出图片
- k8s学习-CKA真题-Etcd数据库备份恢复