Unity 官方教程 Survival Shooter (五)

这一章我们添加射击动画和怪物的受伤机制。

先在GunBarrlEnd上加入LineRenderer组件,这是一个可以画多节线段的组件。


设置成上面这样,Positions的Size为2说明这个线段有2个点,点的位置就是下面Element表示的,这2个点决定了这条线段。再添加一个Particle System粒子特效,进行如下设置




在GunBarrelEnd加入Light组件,设置如下


再在GunBarrelEnd下新建一个空物体,取名为FaceLight,加上一个Light组件


新建一个EnemyHealth.cs,用于怪物的生命值,挂载在3个怪物的prefab上。


两个light都打开应该是这样的


我们先关上这2个灯,新建一个PlayerShooter.cs 脚本,用于主角射击,挂载在GunBarrelEnd上



内容在注释里很详细了,按下开火键会让2个灯光亮起,显示表示弹道的线段。LineRenderer只用作给玩家看的。而用于物理检测的是Ray,即通过射线来检测是否射到带有"Shootable"Layer的物体。需要给怪物的Prefab和Enviroment下的物体添加Shootable的Layer。记得把faceLight拖入到脚本中。

如图,可以看到射线确实被怪物挡住了,并且Enemyhealth中的TakeDamage方法也生效了。




添加打击事件和特效

但是我们发现只凭借弹道的长度不好判断是否打到怪物了,这里我们再加上新的攻击特效。先把prefab移入到场景中,这里以Hellephant为例,我们在怪物的prefab中添加一个空物体取名叫HitParticle,添加ParticleSystem如下



Color的详细设置为:




在EnemyHealth.cs中添加如下代码,和PlayerHealth.cs很相似,即造成伤害时在伤害点播放打击特效。


这里注意TakeDamage多了一个参数,是打击点的位置,在playerShooter中我们也在对应的位置修改


3个prefab都加上这个特效。运行一下,嗯,打击感还是可以的。


接下来我们给怪物添加移动的动画,方法和给主角添加一样,我们可以简单一点,先只添加Move动画。

在Animation文件下新建2个Animator Controller,因为2个小怪物的动作是一样的,


Models文件下的Move文件赋予到对应的位置,


再把2个animationController放在怪物prefab上就好啦。


运行一下,3种怪物都跳起来啦!Nice!


你可能感兴趣的:(Unity 官方教程 Survival Shooter (五))