这是一个简单的射击游戏
- 操作↑↓←→来转换方向和射击,wasd 来移动
- 敌人与玩家碰撞后玩家生命值会减少
- 玩家死后,3s会复活
- 敌人的生成速度和最大数量可以设置
一.2种从当前蓝图类,调用不同蓝图类的方法
1.使用蓝图接口
2.jpg在hero character 实现了接口 affect health
3.png
在调用hero character的时候可以调用这个接口,从而对玩家的hp进行计算
4.png
2.使用自定义的事件
在其他蓝图类调用weapon蓝图类的自定义事件
5.png
在weapon蓝图类定义了 2个 自定义事件
6.png
二.一些功能的实现方法
1.子弹的移动
7.png虚幻4自带一个 子弹移动的组件,直接在蓝图类里面使用即可,会有一个设置可以设置子弹的初速度
2.大量使用了类型转换工具
8.png例如这里敌人与其他actor碰撞后,使用了类型转换,实际上这种类型转换带有检测功能不是字面上的意思,这里检测碰撞到的actor是否为hero character,如果是把这个 hero character 设置为 hero,方便以后调用
-
在 蓝图 中使用 Cast To 节点时,简单而言,就是在尝试检查发出转换的对象是否为被转换的特定对象。换言之,您创建了一个特殊的角色蓝图(如名为 MyCharacter),其中包含变量或其他自定义功能,并将其作为默认 Pawn 类(或所有玩家角色默认使用的角色蓝图)指定。
-
如需从另一个蓝图访问玩家角色的属性,可使用 Get Player Character 节点以常规方式(设置/获取其位置、旋转灯)对玩家角色产生影响,但无法访问已添加到 MyCharacter 蓝图的自定义功能,因为您获取的是玩家角色而非特定类型的角色。
-
使用 Get Player Character 节点,再使用 Cast To MyCharacter 节点(特殊的角色蓝图),即可确认玩家角色是否为 MyCharacter,以便访问该蓝图中所包含的变量、函数、事件或其他特殊功能。
3.如何控制敌人的移动(如何设置简单的AI)
首先AI的移动必须要有 NAV,我理解为这是一个AI移动的区域,AI只会在NAV设置好的区域移动
NAV利用 nav mesh来设置
9.png
敌人AI的移动,利用蓝图类EnemyAI来控制
这里设置了自定义事件来追踪玩家位置
10.png
在敌人蓝图类默认值,里设置了选择的AI类EnemyAI
11.png
明天继续复习一哈玩家的动画,断电了
....
网友评论