﻿1
00:00:04,390 --> 00:00:05,590
‫你好, 欢迎｡

2
00:00:05,590 --> 00:00:10,180
‫在本课中, 我们将向当前正在抓取的对象添加一个标签｡

3
00:00:10,180 --> 00:00:15,670
‫所以如果我把这个石像鬼f 8拿出来, 看看石像鬼雕像,

4
00:00:15,670 --> 00:00:17,740
‫你可以看到它现在有这个被抓的标签｡

5
00:00:17,740 --> 00:00:25,210
‫如果我继续释放石像鬼, 再看一次, 你可以看到标签消失了｡

6
00:00:25,210 --> 00:00:30,310
‫因此, 这将传达给我们场景中的其他游戏事物, 即石像鬼当前被持有,

7
00:00:30,310 --> 00:00:33,220
‫不应被抢走｡

8
00:00:33,220 --> 00:00:35,440
‫让我们深入了解一下如何实现这一点｡

9
00:00:36,430 --> 00:00:42,670
‫所以当我们把石像鬼放到触发区的时候, 触发区会把石像鬼抢走,

10
00:00:42,670 --> 00:00:47,620
‫而不是等我们完全放开｡

11
00:00:47,650 --> 00:00:54,430
‫这是因为触发器区域不知道石像鬼被一个抓取器抓住了｡

12
00:00:54,790 --> 00:01:02,050
‫因此, 为了给予触发器组件进行通信, 我们在石像鬼上获得了某种控制权,

13
00:01:02,050 --> 00:01:08,380
‫我们将再次使用标记, 但这次我们将通过编程方式添加和删除标记,

14
00:01:08,380 --> 00:01:12,070
‫我们将在抓取器中重新执行此操作｡

15
00:01:12,100 --> 00:01:18,880
‫让我们在Visual Studio代码中打开它, 看看我们的抓取函数, 目前我们对遇到的组件所做的是,

16
00:01:18,880 --> 00:01:25,630
‫我们只是继续, 唤醒所有刚体｡

17
00:01:25,720 --> 00:01:29,440
‫所以我们现在要做的是添加一个新标签｡

18
00:01:29,440 --> 00:01:30,130
‫我们该怎么做呢？

19
00:01:30,130 --> 00:01:32,800
‫首先, 我们得找到那个有问题的演员.

20
00:01:32,800 --> 00:01:44,020
‫因此, 我们应该点击result点, 获取actor, 然后使用该actor指针, 以便箭头, 我们可以查找标记｡

21
00:01:44,050 --> 00:01:46,930
‫tags是一个属性, 是一个t数组.

22
00:01:46,930 --> 00:01:50,380
‫我们已经看到了t个数组, 这是一个f个名字的数组｡

23
00:01:50,680 --> 00:01:56,680
‫因此, 我们需要能够操作此托盘, 以便在其中添加和删除标签｡

24
00:01:56,680 --> 00:02:00,910
‫让我们回到托盘, 看看有什么可用的｡

25
00:02:01,210 --> 00:02:07,780
‫如果我们搜索ADD, 你可以看到有一堆函数, 你可以在其中传递元素类型,

26
00:02:07,780 --> 00:02:15,520
‫在我们的例子中是一个F名字, 它会在数组的末尾添加一个新项, 并完成所有需要做的工作,

27
00:02:15,670 --> 00:02:19,480
‫以确保你有足够的空间来容纳它｡

28
00:02:19,780 --> 00:02:28,810
‫如果你搜索remove, 会有很多东西提到removing, 但只有少数方法真正有remove这个名字｡

29
00:02:28,810 --> 00:02:32,560
‫你可以看到它删除了数组中一个项的很多实例｡

30
00:02:32,560 --> 00:02:33,550
‫那句话是怎么说的？

31
00:02:33,550 --> 00:02:41,800
‫它说如果数组中有这个项, 它会从数组中移除这个项的所有实例.

32
00:02:41,800 --> 00:02:46,720
‫因此, 如果您放入多个同名的标签, 它会将它们全部删除｡

33
00:02:46,720 --> 00:02:53,470
‫然而如果你再往下看, 在处有一个移除, 这将移除一个元素, 一个特定的索引｡

34
00:02:53,470 --> 00:03:02,440
‫现在, 我们肯定需要前者而不是后者, 因为我们要通过标记名称来删除, 我们将称之为grab｡

35
00:03:02,440 --> 00:03:08,350
‫让我们从添加开始, 我们将返回到Visual Studio代码, 我们已经得到了这个标签数组｡

36
00:03:08,350 --> 00:03:14,380
‫所以我们可以用它来做的就是我们可以简单的做一个点因为它不是指针, 它是实际的数组.

37
00:03:14,470 --> 00:03:19,030
‫然后我们调用add, 然后我们要添加一个F名字, 我们可以用一个字符串来命名,

38
00:03:19,030 --> 00:03:21,520
‫就像这样｡

39
00:03:21,520 --> 00:03:30,610
‫因此, 当我们抓取对象时, 应该向其添加一个标记, 表明它已被抓取, 让我们继续编译并检查｡

40
00:03:30,610 --> 00:03:37,360
‫完成后, 我们继续点击播放, 尝试像这样拿起石像鬼,

41
00:03:37,360 --> 00:03:48,460
‫然后我将点击F 8来拥有, 我们应该能够选择石像鬼演员, 向下滚动, 看看它的演员标签｡

42
00:03:48,460 --> 00:03:50,720
‫所以这是在演员部分下的高级｡

43
00:03:50,740 --> 00:03:51,910
‫我们可以看看标签｡

44
00:03:51,910 --> 00:03:53,560
‫我们可以看到这里有三个标签｡

45
00:03:53,560 --> 00:03:59,470
‫目前, 我们已经解锁了一个, 然后抓住, 然后再次抓住, 因为我们没有删除它｡

46
00:03:59,470 --> 00:04:05,620
‫实际上如果我们不小心抓到它两次, 我想我一定是抓到了, 那么它就会把标签加两次｡

47
00:04:05,620 --> 00:04:10,660
‫所以我希望你在我们释放演员的时候把标签去掉｡

48
00:04:10,660 --> 00:04:17,230
‫所以你要在release中获取actor, 记住你可以用get owner来获取拥有它的actor｡

49
00:04:17,230 --> 00:04:24,100
‫如果您已经拥有了一个组件, 则可以从该参与者获取标记数组,

50
00:04:24,100 --> 00:04:28,210
‫然后可以使用要从数组中删除的标记对它调用remove｡

51
00:04:28,210 --> 00:04:31,300
‫最后, 继续进行测试, 看看它是否有效｡

52
00:04:31,300 --> 00:04:33,220
‫暂停视频, 开始体验｡

53
00:04:36,230 --> 00:04:36,520
‫好吧, 我会的

54
00:04:36,520 --> 00:04:37,600
‫欢迎回来｡

55
00:04:37,720 --> 00:04:38,230
‫好吧, 我知道了

56
00:04:38,230 --> 00:04:44,920
‫我将停止播放, 返回Visual Studio代码, 我们将进入发布版本, 在该版本中,

57
00:04:44,920 --> 00:04:48,760
‫我们有此获取组件, 并且不等于null｡

58
00:04:48,760 --> 00:04:49,900
‫然后我们就可以释放东西了｡

59
00:04:49,900 --> 00:04:57,010
‫好吧, 我们需要得到地面组件, 但我们也需要得到被抓取组件的所有者｡

60
00:04:57,010 --> 00:05:03,940
‫从get go组件, get owner中取一个箭头, 为了保持这行代码简短, 我把它放在一个变量中.

61
00:05:03,970 --> 00:05:11,770
‫执行元获取执行元等于句柄获取获取组件获取所有者｡

62
00:05:12,520 --> 00:05:22,180
‫然后对于抓取的actor, 我们可以做抓取的actor箭头标记, 然后我们要做标记或删除,

63
00:05:22,240 --> 00:05:33,490
‫我们要删除, 抓取, 确保行尾的两个分号有完全相同的字符串, 然后重新编译｡

64
00:05:33,490 --> 00:05:37,510
‫所以现在如果我在石像鬼附近按播放键, 我就去接他｡

65
00:05:37,960 --> 00:05:39,520
‫按F八

66
00:05:40,000 --> 00:05:42,490
‫让我们看看石像鬼, 看看我们有什么标签｡

67
00:05:42,490 --> 00:05:43,840
‫我们拿到了被抓的标签｡

68
00:05:43,840 --> 00:05:46,020
‫这次只有一个人, 这很好｡

69
00:05:46,030 --> 00:05:55,330
‫现在, 如果我们收回并点击, 我们放下释放, 然后我们可以再次f 8, 选择那个石像鬼雕像, 看看标签,

70
00:05:55,330 --> 00:05:59,950
‫果然, 抓取标签已经消失了｡

71
00:05:59,950 --> 00:06:07,810
‫所以这将给予我们一个很好的机制来与世界上的其他组件交流这个石像鬼, 嘿, 它是我的｡

72
00:06:07,810 --> 00:06:09,070
‫它现在被抓住了｡

73
00:06:09,430 --> 00:06:14,560
‫别想把它从我身边拿走, 把它锁在任何一种接收触发器里｡

74
00:06:14,800 --> 00:06:16,630
‫这也是我们下节课要讲的｡

75
00:06:16,630 --> 00:06:17,650
‫我们在那见｡

