之前两任社长都在一直强调要写博客,一直没有写过,现在我已经踏上了博客的道路!

首先声明:本人才疏学浅,对unity认识不深,有错误的地方欢迎大家指出,在此谢过!

 

本文所说的选择对象,是指在游戏过程中动态的获取到游戏对象!

可能有人说设置一个transform变量来记录一下自己需要攻击的对象. 这确实是一个简单有效的方法,但是缺少可扩展行,并且对游戏的总体来说也不利于维护,还有可能会改动之后出现空指针的情况!针对这样的情况,我想到了三种解决办法!

 

其一:对象身上带有碰撞体直接碰撞检测,这种方法简单粗暴易上手.

但是缺点也很明显,这种适用于子弹炮弹的攻击还是可以,对于rpg的则是很不实用!

 

 

其二 :线性检测

在武器的运动轨迹上选几个点,然后在这几个点上做线性检测。感觉这个比较适合做刀剑一类的.

具体方法是在动画设置几个帧事件,然后在刀剑砍下的时候触发事件做射线检测。用到的函数是:Physics.Linecast

适用于单个个体攻击

 

其三:碰撞体检测

具体方法也是在动画里添加事件,计算中心的范围内有木有怪物

碰撞体检测检测用到的函数是这个:Physics.OverlapSphere

这个适用于群体AOE伤害