‫欢迎回来｡
‫所以我们已经创建了一个新的封装组件指针, 并对其进行了正向声明, 这样我们就不必在base upon
‫h中包含头文件｡
‫现在是时候为我们的基本POM构建一个capsule组件子对象了, 完成后, 我们将把根组件设置为capsule.
‫那么, 我们实际上如何构建一个you capsule组件呢？
‫这个过程非常不真实｡
‫引擎特定的虚幻引擎已创建默认子对象｡
‫这是一个模板函数｡
‫模板函数适应所选的类型, 因此我们可以选择特定的类型并创建默认值｡
‫子对象将适应该类型｡
‫我们传入要构造的类型, 创建默认子对象｡
‫与常规函数不同, 它有这些尖括号｡
‫这是我们传入要构造的类型的地方｡
‫现在创建默认子对象也需要在括号中使用一个参数｡
‫这将是我们分配给子对象的名称｡
‫这与变量名不同, 它是作为字符串文字传入的｡
‫这里有一个例子｡
‫假设我们希望创建一个u静态网格组件｡
‫因此, 我们调用create default子对象, 并结束我们在类型为u的静态网格组件中传递的尖括号,
‫并在括号中为给予命名｡
‫现在您已经看到, 对于String Literal, 应该使用文本宏｡
‫所以我们在这里使用文本宏传递字符串｡
‫现在, 正如我提到的, 这是Unreal Engine使用的内部名称｡
‫还有其他函数使用此函数｡
‫例如, 有一个名为“按名称获取默认子对象”的函数｡
‫它检索属于特定对象的子对象, 你可以调用它, 传入一个特定的名称,
‫它将查找具有所选名称的子对象｡
‫因此, 创建默认子对象的整个函数调用如下所示｡
‫类型放在尖括号中, 名称放在圆括号中｡
‫现在create default子对象返回新创建的组件的地址｡
‫在我们的例子中, 如果我们传入use static mesh组件作为类型, 那么我们会得到use
‫static mesh组件的地址, 我们可以将其存储在指针中, 因为指针存储的是对象的地址｡
‫因此, 假设我们创建一个使用静态网格组件指针的网格｡
‫然后, 我们可以获取创建默认子对象返回地址, 并将该地址存储在网格指针中｡
‫现在, 您已经了解了创建默认子对象的工作原理, 您将使用它来构造一个胶囊组件对象｡
‫您将在基本PON构造函数中执行此操作, 使用create default
‫sub object构造一个胶囊组件, 将您的胶囊组件和尖括号作为要构造的类型传递给胶囊碰撞器,
‫并将其封装在括号中的文本宏中｡
‫暂停视频, 现在将其添加到构造函数中的基点CP｡
‫好吧, 我会的
‫所以我们在巴斯池塘｡
‫CP, 我们想构建一个胶囊组件｡
‫所以我们将使用我们的capsule comp变量, 并将create default sub对象返回的值赋值给它｡
‫现在, 正如我们所看到的, 这个模板函数有尖括号和圆括号,
‫我们看到类型放在尖括号里, 我们将使用U封装组件｡
‫对于括号, 我们将使用文本宏, 我们将称之为胶囊对撞机｡
‫好了
‫现在, 我们将使用capsule组件来构造这种类型的对象｡
‫当我们使用一个类型时, 我们包括它的头文件｡
‫现在, 让我们看看当我们试图编译时会发生什么｡
‫同样, 您可以使用实时编码, 也可以在这里使用VZ代码进行编译｡
‫在本节中, 我将使用VTS代码进行编译｡
‫所以你可以知道, 当我编译的时候, 我已经关闭了Unreal Engine编辑器, 我只是从这里编译｡
‫我想在这里看到错误消息, VTS代码现在正在尝试在这里编译｡
‫我们得到的错误与上一个视频中看到的错误不同｡
‫使用未定义的u型胶囊组件｡
‫这一次, 我们尝试在CPP文件中使用U封装组件类型来构造一个对象｡
‫这里的错误代码的情况下, 你想谷歌这种特定类型的错误的更多信息.
‫在这节课中, 我们已经看到了两种不同类型的编译错误, 我们也知道了这个错误的原因.
‫我们还没有把你的胶囊组件包括进去｡
‫这里是Unreal Engine文档中的U封装组件, 这里是我们需要的该类型的include｡
‫我将把它复制并粘贴到Base Pond CPP的顶部｡
‫现在如果我尝试再次编译, 编译成功, 我们不会看到错误｡
‫我现在要关闭终端｡
‫我们已经创建了胶囊组件｡
‫接下来, 我想做的是确保capsule组件是根｡
‫现在, 我们了解了如何在C++中通过单击和拖动将一个组件指定为根和蓝图｡
‫这也很简单｡
‫我们只需要取根组件变量, 并将capsule comp值赋给它｡
‫现在, 我们已经指定capsule comp应该是根组件｡
‫让我们再编译一次｡
‫现在, 在成功编译之后, 我想跳回到编辑器｡
‫好吧, 我会的
‫我已经打开了编辑器, 我将把我的基类——, C++类拖进去｡
‫现在看看这个
‫我们看到一个胶囊组件｡
‫现在在世界上, 出班轮｡
‫它显示了我刚才拖进来的基础——现在在详细信息面板中的搜索上方被选中｡
‫我可以将它拖下来, 看到这个底座上的所有组件——｡
‫我们所看到的是这个胶囊组件, 因为这是它唯一的组件｡
‫现在我们已经添加了我们的capsule组件, 当我们在Unreal Engine编辑器中实际添加该类的实例时,
‫我们可以看到结果｡
‫总之, 我们已经学习了如何从C++中构造一个胶囊组件, 并且通过将根组件变量的值赋给胶囊组件,
‫使其成为根组件｡
‫在下一个视频中, 我们将在C++类的基础上添加更多组件｡
‫到时候见