git地址:https://gitee.com/asiworld/MakeAModelFrom-code
csdn博客地址:https://blog.csdn.net/JianShengShuaiest
bilibili地址:https://space.bilibili.com/15766978
简介
大家好,我是谢斯,欢迎收看0基础开发游戏的《第四课,使用playmaker制作坦克大战的生命模块》
往期的课程视频地址如下:
之前已经完成了我方坦克的移动和开炮模块,今天我们就来完成我方坦克的生命模块,首先生命一下我自己的unity版本,使用的是unity3d20193.0f6字体全部改为中文
场景布局
- 摄像机俯视,炮弹在后,我方坦克在前的一个布局
- 摄像机的投影模式要改为正交模式
- 大小按照自己的要求而定,能看到炮弹和坦克就好
调整炮弹属性
我们调整完布局之后就来调整一个炮弹的属性
炮弹使用的是上一节课中使用的我方炮弹,但是我方炮弹和地方炮弹的根本区别是layer的不同,炮弹的整个逻辑是通用的,所以我们只需要把炮弹的layer和tag修改为敌方子弹即可
因为上一节课中我已经把开火事件放到了放到了检查面板,所以我们可以直接使用控制栏中的开火按钮来触发,不用新建立一个坦克来负责开炮任务,
下面来看一下效果
炮弹可以正常的攻击敌人了我们现在的任务就是让坦克有生命的概念就可以了
制作生命模块
设计生命模块
我们来设计一下生命模块的样子,好让我们怎么样子去处理他的状态机也就是playmaker
- 我方坦克有三滴血
- 每次被地方子弹攻击会掉一滴血
- 掉血之后又1秒无敌的事件,这一秒不会掉第二滴血
- 0滴血的时候就会死亡
制作状态
通过上面的设计我们分析出一个简单的状态机逻辑
- 健康-第一个状态是默认的健康状态,不被攻击的时候
- 掉血-被攻击之后就会掉一滴血
- 判断-掉完血之后就要判断是否死亡
- 无敌-如果不死亡就是无敌的状态
- 爆炸-如果死亡就是就爆炸
- 死亡-爆炸完成之后就销毁自己
制作事件
根据上面的状态来做对应的事件
- 被攻击
- 受伤
- 死亡
状态事件效果演示
添加变量和动作
-
健康
当被地方子弹攻击的时候我们,发送被攻击的事件
-
掉血
-
掉血的话就要设置一个生命的变量,我们设置生命变量为3,每次被攻击掉血为1
-
为了要表现我们的血量,加入一个slider来表现血量多少
-
-
判断
- 用生命变量和0相判断如果是小于等于0就是死亡,如果大于就是受伤 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ltNORPTl-1582875882519)(第四课-生命模块.assets/image-20200228141343854.png)]
-
无敌
- 等待一秒钟,让他不去做任何逻辑
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4drVRujj-1582875882521)(第四课-生命模块.assets/image-20200228141854124.png)]
-
爆炸
- 爆炸要先创建一个动画
- 设置自己的材质球为黑色,表示已经不可以行动了
- 取消自己的移动模块和开炮模块
- 等待5秒钟之后进入死亡状态让自己销毁
-
死亡
- 销毁自己就可以完成了
查看效果
我们把坦克的后面加入三个地方炮弹,然后分别开火,查看效果,发现如我们预期的一样,结束的时候发生爆炸
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ASbvaCL-1582875882523)(http://q6d7756e7.bkt.clouddn.com/img/2020-02-28-14-27-50-1582874615989.gif)]
结束语
到此就结束了这篇笔记的编写,喜欢的话请关注点赞,我会有更好的博客发出来的,尽请期待
谢斯 发布了11 篇原创文章 · 获赞 6 · 访问量 522 私信 关注