﻿1
00:00:04,500 --> 00:00:05,250
‫你好, 欢迎｡

2
00:00:05,250 --> 00:00:08,310
‫这节课, 我们增加了一个健康条, 你们可以在左下角看到.

3
00:00:08,310 --> 00:00:18,410
‫我们也让我们的球员比敌人更强硬, 这样我们就可以在我们的生命耗尽之前射杀很多敌人｡

4
00:00:18,410 --> 00:00:21,240
‫让我们一起来看看如何制作健康棒｡

5
00:00:21,720 --> 00:00:25,950
‫所以目前, 我们无法知道我们是否还有足够的健康｡

6
00:00:25,950 --> 00:00:30,240
‫作为一个玩家, 根据我们目前的生命值, 我们还能玩多久？

7
00:00:30,240 --> 00:00:31,110
‫现在开始吧｡

8
00:00:31,110 --> 00:00:33,840
‫我想把健康棒介绍给我们的引擎盖｡

9
00:00:33,840 --> 00:00:37,440
‫我们将转到HUD小工具来完成此操作｡

10
00:00:37,440 --> 00:00:44,730
‫如果在艾德上尚未打开, 我们将在palate中查找进度条, 并引入此进度条｡

11
00:00:44,730 --> 00:00:46,080
‫现在, 为什么要有进度条？

12
00:00:46,080 --> 00:00:51,480
‫因为它实际上也具有运行状况栏的所有属性,

13
00:00:51,480 --> 00:00:58,290
‫也就是说, 如果我们在详细信息窗格中向下滚动到百分比, 那么您可以看到,

14
00:00:58,290 --> 00:01:05,160
‫通过更改该百分比（实际上是0和1之间的一个数字, 因此名称有点混乱）, 您可以看到我们的栏被填满并耗尽｡

15
00:01:05,160 --> 00:01:11,940
‫所以我们真正要做的是从1的百分比开始, 然后逐渐减少, 直到达到0的百分比,

16
00:01:11,940 --> 00:01:15,030
‫这一点我们的策略就完蛋了.

17
00:01:15,870 --> 00:01:16,980
‫这就是我们的目标｡

18
00:01:16,980 --> 00:01:22,530
‫我在这里要做的是继续更改填充样式｡

19
00:01:22,530 --> 00:01:28,410
‫所以我们要把它填充一点, 然后看看填充图像和变化｡

20
00:01:28,410 --> 00:01:30,300
‫看看能不能改变颜色｡

21
00:01:31,440 --> 00:01:36,330
‫变成一点绿色, 典型的健康颜色｡

22
00:01:36,330 --> 00:01:37,830
‫然后让它超级明显｡

23
00:01:37,890 --> 00:01:40,390
‫我们现在得到的是健康｡

24
00:01:40,410 --> 00:01:47,430
‫我将添加一个文本块, 标记为“健康”, 然后将其粘贴到健康栏旁边, 就像这样｡

25
00:01:48,100 --> 00:01:53,440
‫然后选择这两个组件, 我想将它们锚在左下角,

26
00:01:53,440 --> 00:01:56,470
‫这样它们就可以随着屏幕的左下角移动｡

27
00:01:56,470 --> 00:01:57,550
‫所以这就是我要做的｡

28
00:01:57,580 --> 00:02:04,330
‫它消失了, 改变了锚点的默认值, 我实际上要把它们都移到离左下边缘更近的地方｡

29
00:02:04,660 --> 00:02:07,480
‫我会把它编译好, 然后我们来玩一玩｡

30
00:02:07,480 --> 00:02:11,860
‫如果我们有全屏, 你可以看到健康栏就在左下角, 虽然很明显,

31
00:02:11,860 --> 00:02:15,940
‫它目前根本不代表我们的健康｡

32
00:02:16,030 --> 00:02:22,840
‫为此, 我们要公开一个函数, 从Ashe到character, 从CPP到蓝图,

33
00:02:22,840 --> 00:02:26,950
‫这样我们就可以在Uag小部件中获得它｡

34
00:02:26,950 --> 00:02:32,860
‫所以我基本上会复制蓝图pure, 我们已经死了, 但是我们不会返回布尔值, 我们会返回一个浮点数,

35
00:02:32,860 --> 00:02:38,560
‫它是0和1之间的百分比, 不是一个百分比,

36
00:02:38,560 --> 00:02:44,980
‫更像是一个分数, 但是我们会称之为get health percent｡

37
00:02:44,980 --> 00:02:50,410
‫我们希望它既是蓝图, 又是常量, 因为当我们调用它的时候,

38
00:02:50,410 --> 00:02:56,380
‫它不应该以任何方式改变这个类, 然后我们继续控制shift, p, 创建实现,

39
00:02:56,650 --> 00:03:00,400
‫我们要返回的是以百分比表示的健康状况｡

40
00:03:00,400 --> 00:03:02,860
‫所以想想吧, 给你一个小小的挑战｡

41
00:03:02,860 --> 00:03:07,780
‫你如何计算健康状况占总健康状况的百分比？

42
00:03:08,110 --> 00:03:08,800
‫欢迎回来｡

43
00:03:08,800 --> 00:03:15,310
‫我们来试试看, 健康值除以最大值, 健康值就是这么简单, 因为当我们有最大健康值时,

44
00:03:15,310 --> 00:03:17,260
‫它就是1.

45
00:03:17,260 --> 00:03:21,460
‫当我们的健康状况为零时, 它将是零, 并且在两者之间的任何地方｡

46
00:03:21,460 --> 00:03:24,250
‫所以让我们回到编辑器并编译｡

47
00:03:24,250 --> 00:03:29,470
‫然后我们将进入HUD用户界面, 我们需要以某种方式获得该角色｡

48
00:03:29,650 --> 00:03:37,330
‫我们要做的是转到进度条, 然后向下滚动到百分比属性所在的位置｡

49
00:03:37,330 --> 00:03:39,760
‫在它的旁边, 你可以看到一个叫做绑定的按钮｡

50
00:03:39,760 --> 00:03:47,500
‫如果你把它下拉并创建绑定, 那么这将创建一个函数, 它的工作是获取百分比值｡

51
00:03:47,500 --> 00:03:51,550
‫每次返回不同的值时, 它都会更新UI｡

52
00:03:51,880 --> 00:03:53,290
‫所以这是相当简单的｡

53
00:03:53,290 --> 00:03:54,250
‫这叫做“获得百分比”｡

54
00:03:54,250 --> 00:03:55,240
‫让我们给它取个更好的名字吧｡

55
00:03:55,240 --> 00:04:00,910
‫我将点击它, 转到详细信息, 然后将其重命名为Get Health, 就像这样｡

56
00:04:01,210 --> 00:04:05,830
‫然后我们需要做的是以某种方式抓住我们的性格｡

57
00:04:05,860 --> 00:04:14,110
‫我们可以这样做, 首先, 这个UI连接到播放器控制器上, 这样我们就可以控制播放控制器了｡

58
00:04:14,110 --> 00:04:16,900
‫然后从播放控制器我们可以得到它的控制——｡

59
00:04:16,900 --> 00:04:22,480
‫事实上, 如果你搜索pawn, 你可以看到有一个get owning player

60
00:04:22,480 --> 00:04:23,650
‫pawn直接实现这个功能.

61
00:04:23,650 --> 00:04:27,610
‫它继续前进, 得到拥有的球员, 然后它得到它正在控制的棋子｡

62
00:04:27,610 --> 00:04:35,410
‫然后, 我们需要做的是将角色转换为射手角色, 以便访问我们刚刚创建的函数｡

63
00:04:35,410 --> 00:04:43,120
‫然后从那里我们可以得到健康百分比, 我们可以把它传递到我们的返回节点,

64
00:04:43,120 --> 00:04:49,330
‫并确保我们从投射手角色传递我们的执行引脚｡

65
00:04:49,540 --> 00:04:52,780
‫然后我将继续编译并保存它, 然后点击播放｡

66
00:04:52,780 --> 00:04:58,870
‫我们应该看到的是一个100%的生命值条, 然后在我们被击中时下降, 我有点慢才看到这一点｡

67
00:04:58,870 --> 00:05:06,790
‫所以我打算从主关卡的视口中点击生命值条到1, 然后它到一半, 然后你就死了｡

68
00:05:06,940 --> 00:05:09,970
‫所以这一切发生得有点太快了｡

69
00:05:09,970 --> 00:05:14,710
‫所以我想挑战你只增加球员的生命, 而不是A的生命｡

70
00:05:14,710 --> 00:05:19,180
‫我想有一种水平的感觉, 就是你们两个开枪打死敌人的那种｡

71
00:05:19,240 --> 00:05:25,660
‫但是你的球员有更多的生命, 它需要更多的镜头从人工智能, 真正让你下来, 因为你是一个大,

72
00:05:25,660 --> 00:05:28,030
‫强大的英雄｡

73
00:05:28,150 --> 00:05:32,650
‫所以这里的想法是为玩家创建一个孩子｡

74
00:05:32,650 --> 00:05:40,240
‫所以这是一个角色类的子类, 但不仅仅是角色类的, 可能已经是蓝图类的了.

75
00:05:40,240 --> 00:05:42,610
‫你得重写几个不同的变量｡

76
00:05:42,610 --> 00:05:48,220
‫也就是说, 最大健康将是更高的球员,

77
00:05:48,220 --> 00:05:55,180
‫也许你想要一个不同的网格, 以区分你周围的所有敌人对视频, 看看你是否可以在这个挑战去｡

78
00:05:56,340 --> 00:05:56,850
‫好吧, 我会的

79
00:05:56,850 --> 00:05:57,330
‫欢迎回来｡

80
00:05:57,330 --> 00:06:02,640
‫我们将进入内容文件夹并找到角色｡

81
00:06:02,640 --> 00:06:03,780
‫我们有BP射手的角色｡

82
00:06:03,780 --> 00:06:09,510
‫我将右键单击它,

83
00:06:09,510 --> 00:06:15,360
‫然后在这里创建一个子蓝图类, 它将是一个BP下划线玩家射击角色, 就像这样.

84
00:06:15,360 --> 00:06:22,020
‫现在打开此蓝图, 它将具有其父蓝图的所有相同属性, 因为这些属性已在父蓝图中设置｡

85
00:06:22,020 --> 00:06:24,330
‫但现在我们可以选择覆盖一些东西｡

86
00:06:24,330 --> 00:06:27,540
‫我首先要覆盖的是网格｡

87
00:06:27,540 --> 00:06:28,410
‫所以我们要开始了｡

88
00:06:28,410 --> 00:06:29,460
‫这是一个红色网格｡

89
00:06:29,460 --> 00:06:31,560
‫我觉得这对敌人有好处｡

90
00:06:31,560 --> 00:06:35,010
‫但我想要的是我的英雄的绿色网格｡

91
00:06:35,010 --> 00:06:37,770
‫所以很明显, 他是一个不同的人｡

92
00:06:38,190 --> 00:06:45,030
‫然后我们将转到根目录或类默认值, 并更改最大生命值.

93
00:06:45,030 --> 00:06:50,460
‫所以我希望他的血量是这个等级敌人的十倍左右｡

94
00:06:50,460 --> 00:06:52,530
‫我将继续编译并保存它｡

95
00:06:52,530 --> 00:06:56,940
‫然后我们要做的另一件事就是去改变我们的蓝图｡

96
00:06:56,940 --> 00:07:04,830
‫我们将找到BP KML增益模式,

97
00:07:04,830 --> 00:07:14,790
‫并将默认类从BP射击游戏角色更改为BP玩家射击游戏角色, 因为我们已经将射击游戏角色放置在世界中, 然后我们将继续单击“播放”｡

98
00:07:14,790 --> 00:07:17,940
‫你可以看到我们有了一个不同的角色｡

99
00:07:18,060 --> 00:07:19,260
‫他看起来不一样了｡

100
00:07:19,260 --> 00:07:26,910
‫当他被击中时, 我们的生命值下降得更慢, 我可以短杀敌人｡

101
00:07:26,910 --> 00:07:31,320
‫但如果你在场景中放置足够多的敌人, 这仍然是相当具有挑战性的｡

102
00:07:31,320 --> 00:07:32,310
‫这节课就讲到这里｡

103
00:07:32,310 --> 00:07:39,930
‫我们已经看到了如何使用绑定和进度条组件来添加健康组件｡

104
00:07:39,930 --> 00:07:44,700
‫在下一节课中, 我们会再看一遍动画,

105
00:07:44,700 --> 00:07:48,510
‫让我们的玩家能够用网格上下瞄准.

106
00:07:48,540 --> 00:07:49,260
‫我会看到你在那里｡

