Unity游戏中近战攻击判定检测 |
您所在的位置:网站首页 › unity发射炮弹简单 › Unity游戏中近战攻击判定检测 |
出现的问题 如果在武器上使用碰撞盒,使用ontriggerenter 的方式触发击中的话, 在有些攻击动作,帧与帧之间的动作太大,会导致触发失效,如下图 26-27帧之间的动作幅度很大. 虽然我们可以增大碰撞盒子,但这不是一定有效的方案 采用射线检测的方式 攻击时,保存射线点这一帧的位置,然后在下一帧时,从上一帧发出射线到当前这一帧. 代码: public class WeaponRayTest : MonoBehaviour{/** * 近战攻击射线检测* */ public Transform pointA;public Transform pointB; public LayerMask layer; int hitCount; public Transform[] Points; //射线发射点public Dictionary dic_lastPoints = new Dictionary(); //存放上个位置信息public GameObject particle;//粒子效果private void Start(){ if (dic_lastPoints.Count == 0){for (int i = 0; i } 武器绑定: 这里每个点都对应射线发出的位置 运行效果: 运行效果图time.scale 为0.25 ,所以看上去检测射线密集. 红线:代表的武器位置,每个每个节点就是射线点的位置 蓝线:代表射线发出的位置,如果期间有检测到对象,视为击中. 参考:【UE4】游戏中近战攻击判定检测(一)——射线检测!_WadaFak的博客-CSDN博客_ue4攻击判定 射线参考:Unity - 射线检测 - SouthBegonia - 博客园 (cnblogs.com) 性能参考:Unity中各类物理投射性能横向比较 - HONT - 博客园 (cnblogs.com) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |