﻿1
00:00:04,370 --> 00:00:05,420
‫你好, 欢迎｡

2
00:00:05,420 --> 00:00:11,990
‫在本课程中, 我们将学习如何创建类,

3
00:00:11,990 --> 00:00:16,520
‫使我们能够在场景中的多个对象之间共享配置和功能｡

4
00:00:16,520 --> 00:00:18,410
‫让我们深入了解一下它是如何工作的｡

5
00:00:19,040 --> 00:00:27,460
‫现在, 当我们开始使用类和实例时, 使用对象编程的真实的威力就显现出来了｡

6
00:00:27,470 --> 00:00:29,150
‫那么, 什么是类呢？

7
00:00:29,150 --> 00:00:36,680
‫实际上, 它就像是一个模板或蓝图, 用这个词来表示对象｡

8
00:00:36,680 --> 00:00:43,670
‫所以这个冒险, 我们称之为冒险家类, 它有一些默认数据和一些功能,

9
00:00:43,670 --> 00:00:50,180
‫但我们可以创建这个类的一个实例, 比如冒险1.

10
00:00:50,420 --> 00:00:57,860
‫例如, 我们可以调用Bob, 他有自己的Adventurer类中的数据副本｡

11
00:00:57,860 --> 00:01:03,410
‫这是实际的对象, 类是我们创建对象的来源.

12
00:01:03,830 --> 00:01:10,610
‫你也可以让一个冒险家到同一个类的第二个实例, 他们共享功能, 注意,

13
00:01:10,610 --> 00:01:15,470
‫他们共享所有相同的功能, 他们可以有自己的数据版本｡

14
00:01:15,470 --> 00:01:19,220
‫所以你可以看到冒险者二号的经验值已经改变了｡

15
00:01:19,460 --> 00:01:21,770
‫这样做的好处是双重的｡

16
00:01:21,770 --> 00:01:27,710
‫一个是我们在这些不同的对象之间共享所有的功能, 第二个是我们没有改变的任何数据,

17
00:01:27,710 --> 00:01:33,050
‫比如体验500或第一级｡

18
00:01:33,050 --> 00:01:39,560
‫如果我将级别1更改为级别2, 它也会在类的所有实例中更改它｡

19
00:01:39,800 --> 00:01:44,990
‫那么我们如何在虚幻中创造出这样的东西呢？

20
00:01:45,410 --> 00:01:50,330
‫首先, 我想引入一个类似于投射体的东西,

21
00:01:50,330 --> 00:01:54,620
‫这样投射体就可以成为我们创建的第一个对象和类｡

22
00:01:54,950 --> 00:02:03,650
‫我将转到工具栏中的“快速进入项目”按钮, 向下转到“形状”并选择“球体”, 然后将球体拖动到我的场景中｡

23
00:02:03,650 --> 00:02:10,160
‫我还要把它往上拖一点, 然后试着缩放它, 用缩放工具把它变小一点｡

24
00:02:10,160 --> 00:02:16,610
‫如果我点击白色钻头的中心, 我可以均匀地缩放整个物体,

25
00:02:16,610 --> 00:02:20,030
‫直到我得到一个适合我的投射物的大小｡

26
00:02:20,330 --> 00:02:27,590
‫现在, 我想对这个投射物做的是,

27
00:02:27,590 --> 00:02:31,970
‫我想把它从一个单一的对象变成一个多个对象的蓝图类｡

28
00:02:32,390 --> 00:02:34,280
‫我们有个简单的办法｡

29
00:02:34,280 --> 00:02:38,270
‫在详细信息面板中, 有一个小蓝图按钮｡

30
00:02:38,270 --> 00:02:44,720
‫如果您单击它, 您可以看到它会将此参与者转换为可以具有脚本行为的可重用蓝图类｡

31
00:02:44,720 --> 00:02:49,970
‫我们可以点击它, 我们只想拥有这个新的子类｡

32
00:02:49,970 --> 00:02:51,590
‫我们只保留默认设置｡

33
00:02:51,590 --> 00:02:54,500
‫我们唯一想改的是名字｡

34
00:02:54,500 --> 00:03:01,130
‫现在我们想称它为抛射体, 但我们倾向于使用一个命名惯例｡

35
00:03:01,130 --> 00:03:02,150
‫这不是必须的｡

36
00:03:02,150 --> 00:03:10,130
‫它对这个项目没有任何功能上的影响, 但它确实帮助我们更好地理解事情｡

37
00:03:10,130 --> 00:03:17,540
‫当我们创建一个蓝图类的时候, 我们倾向于用BP作为前缀, 并且用大写下划线表示,

38
00:03:17,540 --> 00:03:20,060
‫这样我们就可以立即看到这里的对象是什么｡

39
00:03:20,060 --> 00:03:21,290
‫蓝图课程｡

40
00:03:21,380 --> 00:03:28,610
‫我们可以继续并单击“选择”, 由于某种原因, 这实际上是创建, 它的作用是,

41
00:03:28,610 --> 00:03:34,940
‫它继续并在这里打开一个新的编辑器, 即Blueprint类本身的编辑器｡

42
00:03:34,940 --> 00:03:40,190
‫现在, 我们可以像其他编辑器一样, 将它停靠到主窗口中｡

43
00:03:40,880 --> 00:03:43,040
‫你可以再次看到, 我们有很多东西｡

44
00:03:43,040 --> 00:03:49,310
‫它与关卡蓝图非常相似, 但我们还有一些其他的东西,

45
00:03:49,310 --> 00:03:57,740
‫比如这里的视口, 当我们创建蓝图类的对象实例时, 它允许我们预览蓝图类的外观｡

46
00:03:58,130 --> 00:04:01,130
‫现在我们有了这个主类｡

47
00:04:01,130 --> 00:04:07,010
‫我们应该能够将这个类的更多实例和更多对象引入到该级别中｡

48
00:04:07,370 --> 00:04:08,240
‫事实上, 我们可以｡

49
00:04:08,240 --> 00:04:17,210
‫我们可以复制已经存在的对象, 或者打开内容文件夹根目录下的内容绘制｡

50
00:04:17,210 --> 00:04:22,640
‫如果您在左手窗格中选择内容文件夹, 我们将看到一个投射物蓝图｡

51
00:04:22,640 --> 00:04:31,610
‫我们可以将其拖到场景中, 这样就创建了一个新的实例, 一个蓝图的新副本｡

52
00:04:31,610 --> 00:04:34,400
‫但就像我说的, 这些是链接的副本｡

53
00:04:34,400 --> 00:04:43,010
‫在BP投射编辑器中更改属性应更改所有实例的属性｡

54
00:04:43,010 --> 00:04:47,090
‫不同之处在于, 我们在右侧有一个详细信息窗格｡

55
00:04:47,090 --> 00:04:49,970
‫这与我们级别中的详细信息窗格非常相似｡

56
00:04:49,970 --> 00:04:58,400
‫编辑器除了您必须实际单击左手窗格中的组件才能查看其属性之外｡

57
00:04:58,400 --> 00:05:03,680
‫因此, 您可能需要单击静态网格组件,

58
00:05:03,680 --> 00:05:06,620
‫才能看到我们习惯于在根角色级别直接看到的一些属性｡

59
00:05:06,620 --> 00:05:11,960
‫因此, 这里需要注意的一件事是如何改变材料｡

60
00:05:11,960 --> 00:05:16,520
‫所以此刻, 这个球上的物质非常白色｡

61
00:05:16,520 --> 00:05:18,440
‫我们可能需要将其更改为其他内容｡

62
00:05:18,910 --> 00:05:23,860
‫如果您在左侧窗格中选择了此静态网格组件, 然后转到右侧的详细信息窗格,

63
00:05:23,860 --> 00:05:29,110
‫您可以看到有一个标记为“Materials and Elements Zero”的部分｡

64
00:05:29,140 --> 00:05:35,410
‫你可以点击这里的向下箭头, 你可以看到我们项目中的所有材料的列表, 你可以选择其中的任何一种,

65
00:05:35,410 --> 00:05:37,990
‫并尝试它们｡

66
00:05:37,990 --> 00:05:40,960
‫所以我可以试试这种鹅卵石材质｡

67
00:05:40,960 --> 00:05:47,740
‫你可以看到它在我们的炮弹上看起来有点可笑, 所以我不打算用那个｡

68
00:05:47,740 --> 00:05:53,150
‫所以我想挑战你把这个投射物变成炮弹｡

69
00:05:53,170 --> 00:05:56,350
‫现在, 我们要做的是, 首先, 使物理学成为可能｡

70
00:05:56,350 --> 00:06:03,370
‫你将不得不选择静态网格组件来找到物理属性, 然后启用物理,

71
00:06:03,370 --> 00:06:12,040
‫并选择一个你喜欢的材料, 适合炮弹比目前的卵石一个好得多, 我已经选择｡

72
00:06:12,040 --> 00:06:16,030
‫然后回到你的场景, 看看会发生什么｡

73
00:06:16,030 --> 00:06:18,530
‫他们改变了什么？

74
00:06:18,550 --> 00:06:20,470
‫暂停一下, 视频又开始了｡

75
00:06:24,060 --> 00:06:24,540
‫好吧, 我会的

76
00:06:24,540 --> 00:06:25,410
‫欢迎回来｡

77
00:06:25,440 --> 00:06:33,390
‫首先, 如果我点击播放, 你会注意到这两个球只是坐在那里, 因为物理是不允许的｡

78
00:06:33,390 --> 00:06:35,060
‫我们要启用物理功能｡

79
00:06:35,070 --> 00:06:40,650
‫让我们转到详细信息窗格, 在左手窗格中选择静态网格组件｡

80
00:06:40,650 --> 00:06:48,550
‫我们将向下滚动到物理部分和模拟物理的复选框｡

81
00:06:48,570 --> 00:06:54,840
‫我想在这里做的另一个改变是我想改变材料部分, 这是元素零｡

82
00:06:54,870 --> 00:07:01,500
‫如果你现在点击下拉菜单, 我会寻找一个金属的, 我想我会去铬金属材料,

83
00:07:01,500 --> 00:07:04,770
‫所以我得到一个小铬球｡

84
00:07:04,770 --> 00:07:05,940
‫现在, 这是伟大的｡

85
00:07:05,940 --> 00:07:09,120
‫所以它看起来不像以前那么无聊了｡

86
00:07:09,690 --> 00:07:12,630
‫现在我们可以保存, 如果我们想的话, 但不是绝对必要的｡

87
00:07:12,630 --> 00:07:14,460
‫我们可以按播放键｡

88
00:07:14,460 --> 00:07:19,020
‫如果我们缩小, 你可以看到这些球在地板上滚动,

89
00:07:19,020 --> 00:07:25,920
‫启用了物理学, 使用了新的材料, 不仅仅是其中一个, 而是两个, 因为它们都链接回这个蓝图类,

90
00:07:25,920 --> 00:07:28,200
‫它们是它的实例｡

91
00:07:28,410 --> 00:07:29,400
‫这真是太棒了｡

92
00:07:29,400 --> 00:07:42,360
‫我们将能够在游戏中需要同一个类的多个实例的各种情况下使用它, 并防止我们不得不重复太多次｡

93
00:07:42,360 --> 00:07:43,080
‫好东西｡

94
00:07:43,080 --> 00:07:44,640
‫我们下节课再见｡

