unity中玩家扇形攻击范围
2017-03-30 14:08
3583 查看
unity中玩家扇形攻击范围
在unity rpg游戏中,经常会有主角或者Boss什么的会发动技能攻击,除了有攻击的距离以外,肯定会有攻击的扇形范围。本篇博客就给大家简单的讲解一下范围。这个是出来60度角的视线范围,在主角的60度角里面,可以去判断是否可以发动攻击,并且用射线来检测target是否在范围之内。
检测扇形角度
这里用了两条Debug.DrawLine来绘制两条红色的线,用来显示所在的区域。//检测扇形角度 float distance = Vector3.Distance(target.transform.position, transform.position); Quaternion right = transform.rotation * Quaternion.AngleAxis(30, Vector3.up); Quaternion left = transform.rotation * Quaternion.AngleAxis(30, Vector3.down); Vector3 n = transform.position + (Vector3.forward * distance); Vector3 leftPoint = left * n; Vector3 rightPoint = right * n; Debug.DrawLine(transform.position, leftPoint, Color.red); Debug.DrawLine(transform.position, rightPoint, Color.red);
攻击检测
检测的代码还是很少的,先贴出来Vector3 targetDir = target.transform.position - transform.position; Vector3 forward = transform.forward; float angle = Vector3.Angle(targetDir, forward); if (angle < 30.0f) { //攻击代码 }
targetDir 指的是目标方向, 而forward 是指的是玩家朝着的方向,在范围为30度的大小里面就可以发动攻击了。
把这段代码放在Update()里面调用就可以了,就可以出现主角攻击的范围在正向60度的样子了
相关文章推荐
- Unity检测目标点是否在扇形攻击范围内
- Unity检测目标点是否在扇形攻击范围内
- Unity_Shader_用Shader绘制攻击范围的圆圈
- 判定攻击目标是否在攻击者扇形攻击范围类
- 角色是否在扇形攻击范围
- Unity 怪物巡逻并攻击玩家C#代码笔记
- 【小松教你手游开发】【unity实用技能】计算目标物体是否在自己的扇形视野范围
- Unity-实现在防御塔在范围内只攻击先进来的
- Unity一个智能火力点,根据攻击范围自动旋转攻击
- 【unity实用技能】计算目标物体是否在自己的扇形视野范围
- Unity一个智能火力点,根据攻击范围自动旋转攻击
- [Unity实战]攻击范围的绘制
- 在游戏中判定攻击在扇形范围内
- [Unity实战]攻击范围的绘制
- [Unity][JSON]读取写入玩家数据
- unity 中基于NGUI中实现引导,拦截玩家的点击动作
- cocos2d-x 粒子效果内存泄露及Unity一定范围内出怪实现备份。
- Unity 创建一个扇形Mesh
- Unity中创建攻击Slot系统
- Unity&网络--HLAPI(2):Unity HLAPI NetworkManager与玩家NetworkBehaviour的各回调函数的调用时间序列