﻿1
00:00:04,340 --> 00:00:05,660
‫你好, 欢迎｡

2
00:00:05,660 --> 00:00:11,450
‫在本课程中,

3
00:00:11,450 --> 00:00:18,490
‫我们将在场景中绘制调试线, 以便我们可以直观地看到线迹正在执行的操作或应该执行的操作, 并判断我们计算的值是否正确｡

4
00:00:18,500 --> 00:00:20,390
‫让我们一头扎进去看看吧｡

5
00:00:21,270 --> 00:00:28,180
‫如我们所见, 我们的扫描多双通道功能需要一个起始矢量和一个结束矢量｡

6
00:00:28,200 --> 00:00:34,020
‫当我们实际使用这些函数时, 要弄清楚它们的工作原理可能有点困难｡

7
00:00:34,140 --> 00:00:40,080
‫因为如果你开始使用它, 你没有得到你期望的结果, 你有时会让自己想, 嗯,

8
00:00:40,680 --> 00:00:43,350
‫我一开始问的问题对吗？

9
00:00:43,350 --> 00:00:46,620
‫我发送的开始和结束向量是否正确？

10
00:00:46,830 --> 00:00:52,500
‫为了解决这个问题,

11
00:00:52,500 --> 00:00:59,070
‫我们要使用另一个函数draw debug line,

12
00:00:59,070 --> 00:01:05,520
‫这样我们就可以明确地看到起始矢量和结束矢量的位置, 基本上就是在它们之间画一条线, 鉴于这正是扫描要做的事情,

13
00:01:05,520 --> 00:01:11,610
‫那么这是一个很好的方法, 首先, 看看我们是否在第一时间得到了正确的输入｡

14
00:01:11,850 --> 00:01:18,630
‫因此, 您可以在这里看到, 绘制调试行需要相当多的参数, 但实际上并不是所有参数都是必需的｡

15
00:01:19,170 --> 00:01:23,000
‫只有前三､ 四､ 五个｡

16
00:01:23,010 --> 00:01:26,490
‫所以我们首先看到的是一个新的世界｡

17
00:01:26,550 --> 00:01:28,260
‫我们知道如何把握世界｡

18
00:01:28,260 --> 00:01:31,650
‫现在我们有了直线的起点, 它是一个矢量｡

19
00:01:31,650 --> 00:01:36,450
‫我们又看到了一条线的末端, 这是一个矢量, 然后是一个F颜色, 这是我们以前没有遇到过的,

20
00:01:36,450 --> 00:01:38,910
‫但是你可以单击它来找出它是什么｡

21
00:01:39,090 --> 00:01:46,140
‫本质上它是一个像F向量这样的类型, 来表示颜色, 我们已经内置了一些方便的颜色, 让我们可以说, 嘿,

22
00:01:46,140 --> 00:01:52,260
‫我们想要黑色, 我们想要蓝色, 绿色, 随便什么｡

23
00:01:52,260 --> 00:01:57,660
‫您可以只使用颜色名称, 而不必指定R､ g和b值｡

24
00:01:57,660 --> 00:02:04,110
‫最后几个是我们是否得到了持久的线, 它告诉我们线是一直存在还是在帧的末尾消失,

25
00:02:04,110 --> 00:02:08,790
‫告诉我们生存期｡

26
00:02:08,790 --> 00:02:16,170
‫那么, 对于深度优先级和厚度, 它会停留多少秒, 我们都不会使用这两个参数？

27
00:02:16,470 --> 00:02:21,840
‫因此, 此文档页面上的另一条有用信息是include｡

28
00:02:21,840 --> 00:02:26,610
‫所以你可以在这里看到, 要使用这个函数, 我们需要使用声明它的头文件, 也就是散列include draw

29
00:02:26,610 --> 00:02:29,730
‫debug helper｡

30
00:02:29,730 --> 00:02:35,010
‫所以让我们先来看看这个, 因为这将确保自动完成功能在Visual Studio中正常工作｡

31
00:02:35,010 --> 00:02:40,890
‫如果您没有头文件, Visual Studio实际上就不知道如何自动完成这些函数｡

32
00:02:40,890 --> 00:02:48,960
‫然后, 我们将进入tick组件, 我将删除日志消息, 以获得良好的获取时间｡

33
00:02:48,960 --> 00:02:51,330
‫事实上, 我们会摆脱这一切的时间｡

34
00:02:51,330 --> 00:02:52,650
‫你知道吗？

35
00:02:52,650 --> 00:02:58,830
‫我们只需要清空tick函数, 超级冒号之后的所有内容, 我们要删除冒号tick组件,

36
00:02:58,830 --> 00:03:04,920
‫然后从draw调试行开始.

37
00:03:04,920 --> 00:03:09,120
‫所以画出调试行, 然后打开一些括号｡

38
00:03:09,120 --> 00:03:16,170
‫如果您点击了一个控制空间, 那么您可以看到我们刚才讨论的参数, 以及一些在那里没有的更多信息,

39
00:03:16,170 --> 00:03:19,920
‫例如它们的默认值｡

40
00:03:19,920 --> 00:03:24,180
‫其中一些有默认值, 特别是在持久性行之后｡

41
00:03:24,180 --> 00:03:25,530
‫您可以看到默认值为false｡

42
00:03:25,530 --> 00:03:33,090
‫因此, 如果它有默认值, 你实际上不必提供参数, 但是你可以看到颜色没有默认值｡

43
00:03:33,090 --> 00:03:36,120
‫因此, 我们确实需要提供到那一点的一切｡

44
00:03:36,600 --> 00:03:39,180
‫所以第一件事是世界小迷你挑战赛｡

45
00:03:39,180 --> 00:03:42,900
‫你是如何在世界上掌握和传递成画调试线的｡

46
00:03:43,990 --> 00:03:51,340
‫你可以这样得到一个世界括号, 然后我们需要一个开始和一个结束｡

47
00:03:51,340 --> 00:03:56,920
‫因此, 我将在绘制调试行之前创建两个变量, 我现在还不打算填写它们｡

48
00:03:56,920 --> 00:04:07,390
‫如果向量开始和F向量结束, 这两个参数将成为我们接下来的两个参数, 开始和结束, 然后我们需要一个颜色来表示这个颜色,

49
00:04:07,390 --> 00:04:13,990
‫我们可以表示F颜色, 冒号, 冒号,

50
00:04:13,990 --> 00:04:20,500
‫然后我们可以使用预定义的颜色之一, 比如红色总是一个很好的颜色｡

51
00:04:20,500 --> 00:04:21,580
‫你可以很容易地看到它｡

52
00:04:21,580 --> 00:04:26,320
‫在这种情况下, 因为我们是在tick中执行的,

53
00:04:26,320 --> 00:04:31,930
‫而且我们是在每一帧中执行的, 我们将这一行写入屏幕, 我们可以只使用持久性行等于false｡

54
00:04:31,930 --> 00:04:40,300
‫所以每一张票都将重绘这一调试行, 关闭括号, 然后我们可以把分号放在行尾｡

55
00:04:40,300 --> 00:04:44,230
‫那么这些起始值和终止值是什么样子的呢？

56
00:04:44,590 --> 00:04:51,490
‫一开始, 它实际上就是我们的抓取器组件的位置, 因为它将连接到摄像机,

57
00:04:51,490 --> 00:04:55,810
‫这是一个很好的开始位置｡

58
00:04:55,810 --> 00:05:02,320
‫现在请记住, 对于这个组件, 对于摄像机,

59
00:05:02,410 --> 00:05:09,730
‫对于抓取器, 都有一个前向矢量, 这个前向矢量将从摄像机指向场景, 始终指向前方｡

60
00:05:09,730 --> 00:05:19,000
‫所以我们要做的是, 把起始向量, 和前向向量, 乘以一个数｡

61
00:05:19,000 --> 00:05:25,180
‫基本上, 这个量就是我们要寻找的物体的最大距离｡

62
00:05:25,180 --> 00:05:32,440
‫所以你可能有一米, 两米, 或者三米的长度, 然后我们会得到一个结束向量｡

63
00:05:32,440 --> 00:05:39,520
‫所以开始加上抓取器的前向矢量, 等于结束矢量｡

64
00:05:39,520 --> 00:05:45,580
‫因此, 我们希望查看场景的最大深度是我们可能希望配置的内容｡

65
00:05:45,580 --> 00:05:48,580
‫所以我们会把它作为你的财产放在掠夺者身上｡

66
00:05:49,450 --> 00:05:55,180
‫让我们转到抓取器门H, 创建一个私有部分,

67
00:05:55,180 --> 00:06:03,850
‫创建一个U属性, 我们将在任何位置进行编辑, 然后我们将创建类型B的float, 以便它可以是任何数值距离｡

68
00:06:04,120 --> 00:06:12,850
‫我们将其称为最大抓取距离, 默认情况下将其设置为4米｡

69
00:06:12,850 --> 00:06:18,460
‫可能必须是400, 因为默认单位是厘米｡

70
00:06:18,460 --> 00:06:22,330
‫所以我想挑战你们去计算这些开始和结束｡

71
00:06:22,330 --> 00:06:30,580
‫在第一个实例中使用获取组件位置, 使用获取前进向量计算终点,

72
00:06:30,580 --> 00:06:35,560
‫并乘以我们刚刚配置的最大抓取距离｡

73
00:06:35,590 --> 00:06:41,470
‫然后编译, 播放, 并从你的演员弹出, 因为这条线将是直接向下的相机｡

74
00:06:41,470 --> 00:06:42,790
‫最初您可能看不到它｡

75
00:06:42,790 --> 00:06:43,570
‫那就弹射｡

76
00:06:43,630 --> 00:06:49,420
‫来吧, 走出你自己的身体, 你能看到线暂停, 视频和有一个去｡

77
00:06:52,800 --> 00:06:53,280
‫好吧, 我会的

78
00:06:53,280 --> 00:06:53,910
‫欢迎回来｡

79
00:06:53,910 --> 00:06:59,010
‫现在我们来拿一张EP, 开始写我们要写的东西｡

80
00:06:59,460 --> 00:07:05,640
‫正如我们所说的, 只需要简单地获取组件位置, 然后开始｡

81
00:07:05,670 --> 00:07:21,090
‫最后一行应该是开始, 加上前进向量乘以最大抓取距离, 就像这样, 在这行的末尾加一个分号.

82
00:07:21,090 --> 00:07:27,930
‫我们将继续进行编译, 如果编译成功, 我们将继续点击播放,

83
00:07:27,930 --> 00:07:32,820
‫然后让我们的质量在视口中点击f8弹出｡

84
00:07:32,820 --> 00:07:42,270
‫如果我们走出自己, 你可以看到清晰的线条, 从我们的相机一直到地板｡

85
00:07:42,270 --> 00:07:48,600
‫如果我出来的话, 我们甚至可以看到它也从地板的底部伸出了一点｡

86
00:07:48,600 --> 00:07:50,160
‫对你来说是四米｡

87
00:07:50,160 --> 00:07:52,410
‫所以我们有了开始, 我们有了结束｡

88
00:07:52,410 --> 00:08:02,520
‫如果我们要使用这条线, 这将是一个很好的输入参数, 我们将在稍后使用的几何扫描｡

89
00:08:02,520 --> 00:08:03,120
‫好东西｡

90
00:08:03,120 --> 00:08:06,690
‫我们已经学会了如何在场景中绘制调试线｡

91
00:08:06,690 --> 00:08:11,610
‫这是一个非常有用的技能, 当你不明白为什么有些东西不工作时, 你会经常使用它｡

92
00:08:11,610 --> 00:08:12,510
‫希望你喜欢｡

93
00:08:12,510 --> 00:08:14,070
‫我们下节课再见｡

