﻿1
00:00:04,340 --> 00:00:05,480
‫你好, 欢迎｡

2
00:00:05,480 --> 00:00:10,550
‫在这堂课中, 我们将学习在场景中绘制调试球体,

3
00:00:10,550 --> 00:00:13,520
‫这样我们就可以在空间中可视化不同的f矢量位置｡

4
00:00:13,520 --> 00:00:15,830
‫让我们深入了解一下它是如何工作的｡

5
00:00:16,690 --> 00:00:22,510
‫很快我们就需要调用, 带有旋转的位置的抓取组件｡

6
00:00:22,510 --> 00:00:28,660
‫为此, 我们需要知道一些事情, 我们试图获取哪个组件的位置, 旋转,

7
00:00:28,660 --> 00:00:32,200
‫在本例中, 我们可以愉快地忽略骨骼名称｡

8
00:00:32,200 --> 00:00:35,110
‫但我们确实需要知道这些其他的事情｡

9
00:00:35,320 --> 00:00:41,710
‫当谈到旋转时, 这是非常简单的, 因为我们可以只取组件的旋转｡

10
00:00:41,710 --> 00:00:43,960
‫至于组件, 这也是非常简单的｡

11
00:00:43,960 --> 00:00:49,960
‫我们所要做的就是在我们做球体追踪的时候, 取我们碰撞的分量｡

12
00:00:49,960 --> 00:00:54,340
‫另一方面,

13
00:00:54,340 --> 00:01:02,080
‫定位就有点棘手了, 因为我们不只是想找到实际组件的位置, 因为我可能会在这里看到它, 我可能会抓住它的头部｡

14
00:01:02,080 --> 00:01:06,580
‫但是如果你看到这个物体的根部, 它实际上就在底部附近｡

15
00:01:06,580 --> 00:01:09,280
‫所以它可能会导致一些奇怪的结果｡

16
00:01:09,280 --> 00:01:17,110
‫我抓住它靠近顶部, 靠近翅膀, 然后它会移动石像鬼和浮动太高, 所以它不觉得正确,

17
00:01:17,230 --> 00:01:19,780
‫如果你这样做｡

18
00:01:19,780 --> 00:01:21,910
‫我试过了, 只是有点奇怪｡

19
00:01:22,300 --> 00:01:29,920
‫所以我们要做的是, 当我们做球体轨迹时, 我们要找到我们击中石像鬼的位置｡

20
00:01:29,920 --> 00:01:37,750
‫如果我们继续抓取CP, 实际上在我们的命中结果中有几个选项可以用来获得一些位置矢量｡

21
00:01:37,750 --> 00:01:44,890
‫所以如果你点击结果点, 然后点击控制空间, 你可以在这里看到一堆不同的东西｡

22
00:01:44,950 --> 00:01:47,050
‫你可以看到其中一个是我们碰到的组件｡

23
00:01:47,050 --> 00:01:48,790
‫我们稍后会用到它｡

24
00:01:48,790 --> 00:01:53,860
‫有一个撞击点可能是有趣的一个｡

25
00:01:53,860 --> 00:01:55,840
‫还有一个地点｡

26
00:01:55,840 --> 00:02:01,360
‫所以要想知道是撞击点还是我想要的位置,

27
00:02:01,360 --> 00:02:06,910
‫理想的情况是我们有办法在这个世界上可视化, 可视化我们想要看到的点｡

28
00:02:06,910 --> 00:02:12,850
‫幸运的是, 在同一个包含文件中, 我们找到了一个调试行｡

29
00:02:12,850 --> 00:02:18,550
‫还有一个绘制调试球体功能, 它有很多相同的参数｡

30
00:02:18,550 --> 00:02:22,300
‫您需要一个世界作为第一个参数, 即球体的中心｡

31
00:02:22,330 --> 00:02:26,920
‫半径是一个浮点数, 即球体应具有的分段数｡

32
00:02:26,920 --> 00:02:29,950
‫我们会看到这意味着什么当我们真正画出来的时候｡

33
00:02:29,950 --> 00:02:35,680
‫然后是一种颜色, 然后是它是否应该在场景中保留以及保留多长时间等｡

34
00:02:35,680 --> 00:02:38,710
‫我们来画一下这个球体｡

35
00:02:38,710 --> 00:02:46,660
‫一开始我只是用它在扫掠的端点画一个球体｡

36
00:02:46,720 --> 00:02:52,270
‫所以我们要调用draw debug sphere｡

37
00:02:52,300 --> 00:02:56,500
‫我们不需要包括任何新内容, 因为我们已经在这里绘制了调试行｡

38
00:02:56,650 --> 00:03:01,420
‫得到世界是第一个参数, 然后是这个球体的中心, 也就是结束向量,

39
00:03:01,420 --> 00:03:03,850
‫半径｡

40
00:03:03,850 --> 00:03:08,800
‫我会给予它十厘米的半径, 我也会给它十段｡

41
00:03:08,920 --> 00:03:12,100
‫这次我会选F色｡

42
00:03:12,100 --> 00:03:13,060
‫让我们给予它一些不同的东西｡

43
00:03:13,060 --> 00:03:17,830
‫F色, 冒号, 冒号, 这次可能是蓝色的球体, 持久的线条｡

44
00:03:17,830 --> 00:03:21,700
‫我确实希望这是真的, 因为我们只叫一次, 而不是每次抽搐｡

45
00:03:21,700 --> 00:03:25,060
‫所以我要把它设为true然后是生存期｡

46
00:03:25,060 --> 00:03:31,750
‫我将设置球体持续5秒, 然后其余的就不那么重要了｡

47
00:03:31,750 --> 00:03:37,450
‫我会在行尾放一个分号, 然后重新编译, 如果我们继续,

48
00:03:37,450 --> 00:03:44,020
‫在编译完成后点击播放, 我们会从石像鬼处后退一点, 我会左击,

49
00:03:44,020 --> 00:03:48,940
‫你们可以看到球体出现在我现在看到的位置前面四米处｡

50
00:03:48,940 --> 00:03:54,550
‫我以为它会持续5秒, 但实际上我需要在这里说明的是, 持续并不是真的,

51
00:03:54,550 --> 00:03:59,560
‫因为这基本上完全忽略了生命周期, 只是让它们永远存在｡

52
00:03:59,560 --> 00:04:03,490
‫所以如果我们把false和5秒的时间放在一起｡

53
00:04:03,490 --> 00:04:08,200
‫所以我只是犯了一个错误, 这很容易做到, 也很容易误解文档,

54
00:04:08,200 --> 00:04:10,810
‫然后我们继续在我们的游戏中点击播放｡

55
00:04:11,230 --> 00:04:16,870
‫如果我们在5秒后创建了一个球体, 它又会消失｡

56
00:04:16,870 --> 00:04:19,840
‫所以它不会在我们的世界里混乱太久｡

57
00:04:19,840 --> 00:04:24,970
‫让我们来挑战一下, 从我们的命中结果中找出我们需要的位置｡

58
00:04:24,970 --> 00:04:32,440
‫为每一个球､ 命中结果位置和命中结果弹着点画一个调试球, 用不同的颜色来显示,

59
00:04:32,440 --> 00:04:38,350
‫让人清楚哪一个是哪一个, 有什么区别？

60
00:04:38,350 --> 00:04:40,500
‫我们需要哪一个？

61
00:04:40,510 --> 00:04:42,460
‫暂停视频, 开始体验｡

62
00:04:45,760 --> 00:04:46,390
‫好吧, 我会的

63
00:04:46,390 --> 00:04:47,320
‫欢迎回来｡

64
00:04:47,320 --> 00:04:53,650
‫让我们回到代码中, 深入到if语句, 在那里我们标记了一个匹配项｡

65
00:04:53,650 --> 00:04:55,930
‫所以我们会有一些点击结果｡

66
00:04:55,990 --> 00:05:06,370
‫在我们找到演员之前, 我要做的是用“获取世界”来绘制调试球体｡

67
00:05:07,000 --> 00:05:15,670
‫我们要画的第一个位置是命中结果的位置, 半径为10, 线段为10,

68
00:05:15,670 --> 00:05:25,510
‫颜色为f, 冒号, 这次冒号绿色, 持久性线条为false, 生存期为｡

69
00:05:25,510 --> 00:05:32,650
‫让我们把它设为5秒, 然后复制这行, 因为我们想要的几乎是完全相同的东西, 除了我们想要改变｡

70
00:05:32,650 --> 00:05:36,070
‫命中结果点的命中结果位置｡

71
00:05:36,950 --> 00:05:39,940
‫撞击点和颜色｡

72
00:05:39,950 --> 00:05:45,920
‫也许我们可以把它换出来读, 这样我们就知道绿色和红色的区别了｡

73
00:05:45,950 --> 00:05:49,010
‫让我们编译并进入编辑器｡

74
00:05:49,040 --> 00:05:50,360
‫我们开始吧｡

75
00:05:50,570 --> 00:05:55,670
‫你可以看到, 当我没有击中任何东西时, 我只得到这个蓝色的球体｡

76
00:05:56,060 --> 00:05:59,380
‫如果我走到石像鬼面前, 看着石像鬼, 试着打它｡

77
00:05:59,390 --> 00:06:02,690
‫好吧, 我们有两个非常不同的观点｡

78
00:06:02,720 --> 00:06:05,990
‫绿色的那个离石像鬼很远｡

79
00:06:06,020 --> 00:06:08,300
‫红色的那个更近｡

80
00:06:08,300 --> 00:06:09,660
‫这是怎么回事？

81
00:06:09,680 --> 00:06:15,650
‫如果我们看一下碰撞结果文档,

82
00:06:15,650 --> 00:06:28,490
‫然后看一下应该在什么位置, 你可以在这里看到一个讨论, 如果发生碰撞, 移动的形状将在世界空间中的哪个位置与受影响的对象碰撞｡

83
00:06:28,490 --> 00:06:37,550
‫如果我弹出并暂停一秒钟, 看看这些点实际上是什么样子的, 你可以看到绿色的一个确实符合描述｡

84
00:06:37,550 --> 00:06:45,200
‫我们有一个半径为一米的球体, 我们把它投射或扫向这个石像鬼, 当它到达这个绿点,

85
00:06:45,200 --> 00:06:52,040
‫它会击中石像鬼, 因为这是它周围半径为一米的地方,

86
00:06:52,040 --> 00:06:57,350
‫而撞击点告诉我们球体击中石像鬼的位置｡

87
00:06:57,380 --> 00:07:02,270
‫现在, 这是更有可能的地方, 我们想抓住它, 因为它实际上是在滴水嘴｡

88
00:07:02,270 --> 00:07:09,980
‫如果我抓住它在这里, 石像鬼将旋转和旋转周围的某个点随机在半空中, 看起来不像我们正在抓住它｡

89
00:07:09,980 --> 00:07:15,970
‫而在这个红点周围, 看起来就像我抓住了它的翼尖, 看起来很自然｡

90
00:07:15,980 --> 00:07:16,520
‫好东西｡

91
00:07:16,520 --> 00:07:21,710
‫在这堂课中, 我们学习了更多关于命中结果的信息,

92
00:07:21,710 --> 00:07:26,640
‫我们还学习了如何在场景中绘制更多调试对象｡

93
00:07:26,660 --> 00:07:28,220
‫我们下节课再见｡

