美文网首页
Unity 官方教程 Survival Shooter (三)

Unity 官方教程 Survival Shooter (三)

作者: 迷途小路 | 来源:发表于2018-11-12 10:24 被阅读0次

    现在我们进行怪物对玩家的伤害事件

    先制作怪物伤害脚本EnemyAttack.cs如下:

    通过一个标志位playerInRange来标志是否碰撞了,在碰撞的方法里去改变,在Update()方法里写入伤害的方法。接下来我们要给怪物加上碰撞体。

    把3个怪物预制物放在场景中,

    添加Sphere Collider作为伤害范围,即进入这个范围就会造成伤害,这个需要触发碰撞事件,所以 Is Trigger 勾上,

    添加Capsule Collider作为碰撞体积,比Sphere Collider的范围小一些,怪物和怪物之间就不会叠到一起了,它的Is Trigger 不勾上。以最大的怪物hellephant为例:

    另两种怪物的大小也调整到合适的,把EnemyAttack.cs脚本都挂上去,再点击Apply应用,最后删去场景中的怪物预制物。

    试一下,OK。

    接下来制作主角的血条,这里我们跟官方的教程不一样,提升一点点难度,我们做一个定在主角头上的血条

    我们在生成一个Slider删去不用的部分,设置Canvas 如下:

    通过改变Scale调整Slider到合适的大小,如下

    再调整Slider到主角的头上,调整背景颜色为黑,滑动条颜色为红。

    新建一个控制角色生命值的脚本PlayerHealth.cs 挂载在Player下,

    这个TakeDamage方法就是在EnemyAttack.cs里怪物和玩家碰撞后触发的。我们再回到EnemyAttack.cs里

    添加如下内容,获取到PlayerHealth脚本里的TakeDamage方法,在Attack()里触发。

    运行一下,可以碰到怪物后会减少

    我们现要让相机跟随主角。在Camera上挂载一个CameraFollow.cs

    再将Player拖入脚本中

    这样就可以让相机跟随主角了,但运行试了一下,总是感觉很生硬,官方加入了一个方法Vector3.Lerp,这个方法是让取差值,即让相机的位置取主角位置和相机当前位置的差值,Updae()方法改成这样

    我们发现血条没有跟着主角,这里很简单,让在Canvas上挂载一个HealthFollow.cs的脚本,内容如下

    将Palyer拖入其中,运行一下,不论主角面向哪里,血条一直跟随且面向屏幕,效果不错!

    相关文章

      网友评论

          本文标题:Unity 官方教程 Survival Shooter (三)

          本文链接:https://www.haomeiwen.com/subject/hzgxfqtx.html