﻿1
00:00:04,320 --> 00:00:05,310
‫你好, 欢迎｡

2
00:00:05,310 --> 00:00:15,150
‫在这节课中, 我们将在C++中设置一个黑板键, 这样我们就可以在开始播放时设置播放器的位置｡

3
00:00:15,150 --> 00:00:17,100
‫让我们深入了解一下它是如何工作的｡

4
00:00:17,960 --> 00:00:18,170
‫好吧, 我会的

5
00:00:18,170 --> 00:00:28,100
‫正如我在上节课中所说的, 我们希望能够在黑板上设置一些游戏状态, 让人工智能根据这些状态采取行动｡

6
00:00:28,340 --> 00:00:37,430
‫黑板看起来像这样, 它现在有一个自激活键, 但是这里没有其他键｡

7
00:00:37,430 --> 00:00:40,970
‫我们可以添加密钥, 就像单击这个新密钥按钮一样｡

8
00:00:40,970 --> 00:00:42,770
‫您可以变更类型｡

9
00:00:43,250 --> 00:00:50,090
‫实际上并没有一个演员的类型或者类似的东西, 只是在模糊的对象类型下｡

10
00:00:50,090 --> 00:00:56,270
‫有球, 阶级, 敌人, 等等｡  但是你可以选择你想要的对象类型,

11
00:00:56,270 --> 00:01:01,310
‫方法是在黑板上找到详细信息, 下拉列表, 选择你想要的基类｡

12
00:01:01,310 --> 00:01:05,840
‫比如说, 这里说的是自参与者是参与者类型｡

13
00:01:06,020 --> 00:01:08,300
‫默认情况下, 这是刚刚在这里放置的｡

14
00:01:08,300 --> 00:01:12,740
‫但我们要做的是设置一个新的关键点｡

15
00:01:12,920 --> 00:01:19,700
‫要做到这一点, 我们需要找到如何在C++中访问它｡

16
00:01:20,090 --> 00:01:29,420
‫因此, 我们已经有了一个简单的函数, 允许我们通过在AI控制器上执行get

17
00:01:29,420 --> 00:01:32,810
‫blackboard组件来获取黑板｡

18
00:01:32,810 --> 00:01:41,540
‫很简单, 我们只需要得到黑板组件, 让我们看看黑板组件, 点h,

19
00:01:42,230 --> 00:01:45,650
‫看看这里有什么可用的｡

20
00:01:45,650 --> 00:01:55,040
‫我们要做的是设置键, 或者设置黑板, 或者实际上, 就像设置值一样简单｡

21
00:01:55,040 --> 00:02:01,880
‫黑板组件上有很多不同的函数, 它们允许你设置不同的值, 所以你可以通过一个键名来设置,

22
00:02:01,880 --> 00:02:06,860
‫这里是一个F名字.

23
00:02:06,910 --> 00:02:14,900
‫然后, 您可以将值设定为物件, 或者您可以将类别设定为此处可用的所有不同型别｡

24
00:02:15,140 --> 00:02:16,850
‫所以我们来给予试吧｡

25
00:02:16,850 --> 00:02:25,700
‫我将转到C++并尝试将玩家兵的位置设置为变量之一｡

26
00:02:25,700 --> 00:02:31,250
‫所以我们首先要做的是, 我们需要得到黑板组件｡

27
00:02:31,250 --> 00:02:34,940
‫让我们试一下, 看看黑板组件｡

28
00:02:34,940 --> 00:02:37,070
‫然后我们需要有正确的包含｡

29
00:02:37,070 --> 00:02:44,060
‫因此, 如果我将鼠标悬停在H上的黑板组件上, 您可以看到我们需要包括行为树正斜杠黑板组件｡

30
00:02:44,060 --> 00:02:53,600
‫我们来做哈希包含, 然后它就是行为树正斜杠黑板组件H｡

31
00:02:53,960 --> 00:02:59,180
‫现在我们可以在该类型上使用箭头操作符, 并且应该正在运行｡

32
00:02:59,180 --> 00:03:03,260
‫我们想, 在这种情况下, 设置一个向量｡

33
00:03:03,260 --> 00:03:04,370
‫我们要设定地点｡

34
00:03:04,370 --> 00:03:12,950
‫我们设置了一个向量, 并没有复制整行, 只是设置了向量, 然后我们想,

35
00:03:12,980 --> 00:03:17,630
‫第一个参数是我们要设置的名称, 这样我们就可以使用文本宏了.

36
00:03:17,720 --> 00:03:23,420
‫我将把它称为播放器位置, 它将在开始时给予位置, 因为我们在开始Play中调用它,

37
00:03:23,420 --> 00:03:29,060
‫然后我们需要设置位置, 这样我们就可以从代码行中得到位置,

38
00:03:29,060 --> 00:03:32,630
‫得到播放器——首先｡

39
00:03:32,690 --> 00:03:43,040
‫所以取消注释, 然后我们要做玩家典当箭头, 得到演员位置, 就像这样, 用分号结束这行｡

40
00:03:43,040 --> 00:03:47,750
‫就这么简单, 设置一个黑板值.

41
00:03:47,750 --> 00:03:52,970
‫所以你们的挑战是做另一半, 在黑板上创建一个键.

42
00:03:52,970 --> 00:03:57,140
‫所以在黑板上添加键, 确保它的类型和名称正确, 如果一切正常,

43
00:03:57,140 --> 00:04:00,140
‫你应该可以在运行时检查这个值｡

44
00:04:00,140 --> 00:04:01,340
‫还记得上节课吗？

45
00:04:01,340 --> 00:04:04,040
‫我们看到了如何查看行为树｡

46
00:04:04,040 --> 00:04:04,850
‫你也可以这么做｡

47
00:04:04,850 --> 00:04:12,090
‫你可以在运行时检查黑板, 当你玩的时候, 你应该能够看到C++代码设置了什么值｡

48
00:04:12,110 --> 00:04:14,420
‫暂停视频, 开始体验｡

49
00:04:15,220 --> 00:04:15,490
‫好吧, 我会的

50
00:04:15,490 --> 00:04:16,290
‫欢迎回来｡

51
00:04:16,300 --> 00:04:21,370
‫我将进入编辑器, 点击compile, 因为我还没有这样做｡

52
00:04:21,370 --> 00:04:23,710
‫我们将添加一个新的黑板键｡

53
00:04:23,710 --> 00:04:28,600
‫在这种情况下, 我们必须把名字和类型弄对, 否则事情会出错｡

54
00:04:28,600 --> 00:04:34,150
‫我们有一个向量键, 我们称之为播放器位置, 我会复制它,

55
00:04:34,150 --> 00:04:38,740
‫以确保拼写正确.

56
00:04:38,740 --> 00:04:41,170
‫是的, 我们有很酷的豆子｡

57
00:04:41,560 --> 00:04:48,940
‫然后我们要做的是, 我们要去检查黑板上的细节是否正确｡

58
00:04:48,940 --> 00:04:51,550
‫是的, 有一个名字, 如果你想的话, 你可以加上描述｡

59
00:04:51,550 --> 00:04:52,570
‫型别是向量｡

60
00:04:52,570 --> 00:04:53,340
‫那很酷｡

61
00:04:53,340 --> 00:04:55,170
‫例如, 选择｡

62
00:04:55,180 --> 00:05:00,190
‫这是一个我们目前并不特别感兴趣的变量｡

63
00:05:00,190 --> 00:05:00,700
‫好的, 谢谢

64
00:05:00,700 --> 00:05:06,520
‫我们已经编译好代码了, 让我们点击“播放”, 看看我们是否能检查黑板值｡

65
00:05:06,520 --> 00:05:12,370
‫转到黑板上, 您可以看到我们仍然可以使用下拉菜单来选择我, 我们希望与之相关的内容｡

66
00:05:12,370 --> 00:05:17,230
‫在我们的世界中只有一个, 但你可以看到, 自我演员还没有设置,

67
00:05:17,230 --> 00:05:19,270
‫但球员的位置确实已经设置｡

68
00:05:19,270 --> 00:05:21,520
‫让我们检查一下这是否大致正确｡

69
00:05:21,520 --> 00:05:27,730
‫如果我拥有, 看看我的球员, 看看球员的位置｡

70
00:05:27,730 --> 00:05:28,420
‫你看得出来｡

71
00:05:28,420 --> 00:05:30,010
‫是的, 非常正确｡

72
00:05:30,010 --> 00:05:33,220
‫2000年-5100年｡

73
00:05:33,790 --> 00:05:36,400
‫2000年-5100年｡

74
00:05:36,400 --> 00:05:39,970
‫这就是从C++中设置的值｡

75
00:05:39,970 --> 00:05:40,840
‫就这么简单｡

76
00:05:40,990 --> 00:05:44,680
‫我们可以开始了解如何与行为树交互｡

77
00:05:44,680 --> 00:05:51,130
‫在下一节课中, 我们会看看行为树的实际结构, 并让它们做些什么.

78
00:05:51,130 --> 00:05:52,150
‫激动人心的部分｡

79
00:05:52,180 --> 00:05:52,930
‫到时候见｡

