‫大家好, 欢迎这堂课｡
‫我们将研究如何将内容写入输出日志,
‫特别是如何将变量值写入日志, 以帮助我们调试游戏.
‫让我们深入了解一下它是如何工作的｡
‫因此, 在Blueprint中, 当我们希望快速显示某些信息或可能只是调试过去的某些内容时,
‫我们能够将内容写入屏幕｡
‫我们在C++中使用了一个新的属性来做这个, 但是我们实际上可以使用一个log语句来做这个, 它有点复杂, 有点不真实,
‫这就是为什么我在这里之前一直回避做这个｡
‫因此, 在向您介绍C++之前, 我们对它的语法有一点熟悉｡
‫现在, 它的工作方式是, 如果你在这里得到了扩展, 安装了四个不真实的代码片段,
‫这实际上会变得更容易, 因为你不必记住所有复杂的语法｡
‫你只要输入, 你记录, 它会弹出一个智能感知对话框, 就像这样, 说你记录,
‫以帮助你写出整个代码, 你可以点击, 输入或选择它与您的鼠标｡
‫然后你会看到它写出了一个看起来有点像函数的东西｡
‫它实际上并不是一个隐藏的功能｡
‫这里面有一点不真实的魔力, 但本质上有点像函数｡
‫所以我们要做的就是把几个参数传递给这个函数.
‫第一个选项告诉我们正在处理的日志类别的类型｡
‫第二个告诉我们日志的级别｡
‫所以这件事有多紧急｡
‫最后我们得到了这个东西, 它基本上是一个函数中的函数,
‫它告诉我们需要打印的文本｡
‫那么这是如何工作的呢？
‫如果我们把它留在代码中, 进入到非真实命中编译, 我们想看看它在哪里出现？
‫编译完成后, 我们将继续并单击播放｡
‫你实际上要找的是它不会出现在屏幕上｡
‫它将在输出中｡
‫在这里登录, 您可以在这里看到它｡
‫它说, 显示你的消息, 我们有多少消息？
‫一, 二, 三, 四, 五｡
‫这样做的原因是它为我们场景中的每一个演员显示信息, 这是一个移动的平台｡
‫所以这就是为什么我们会收到这么多信息｡
‫你可以看到, 我们可以把信息改变成我们想要的样子｡
‫我们还可以在这个消息中加入更多的信息, 比如开始位置或者演员的名字, 诸如此类｡
‫我们开始吧｡
‫我们有一个输出日志, 我们有我们的消息, 你可以开始看到我所说的类别｡
‫你可以看到这里是log temp, 上面是log audio log audio mixer Log World.
‫因此, 有不同类别的日志记录可以帮助我们区分这条消息来自哪里？
‫这是从虚幻的哪一部分来的？
‫但我们将主要使用log temp, 因为它只是一个用于注销调试消息的临时位置,
‫然后是显示｡
‫这是默认级别, 即日志级别, 但我们可以有消息, 可以是一系列不同的东西｡
‫它可以显示在下面的表中的任何值｡
‫因此, 您可以看到此处显示的消息将打印到控制台和日志文件中｡
‫我们在这里看到了日志, 它只在日志文件中打印消息, 而不在控制台中显示｡
‫所以这是针对那些你不想让它显示太多, 但可能想用它来调试的事情｡
‫如果您正在调试某人的游戏, 并且该游戏在他们的计算机上运行, 则他们会向您发送一个日志文件｡
‫那你就有警告了｡
‫这是为当事情似乎出了问题, 它打印到日志控制台, 它也是黄色的｡
‫然后我们会遇到一个错误, 它以红色显示, 然后是致命的, 基本上是打印到控制台, 并使引擎崩溃｡
‫因此, 您可能希望将此方法作为最后的手段, 但它确实允许您在日志文件中使用不同的级别｡
‫我会给你们看如果我们在这里放不同的信息会是什么样子｡
‫我将复制我们的记录行, 我将制作三个｡
‫我们将有一个显示, 将有一个警告, 我们将有一个错误｡
‫现在, 这些是我们将使用的典型级别｡
‫我们来看看它们是什么样子的｡
‫让我们进入虚幻, 点击编译按钮, 让我们停止并重新开始播放｡
‫顺便说一下, 您可以通过按两次波浪号键来调出输出日志｡
‫它显示了输出日志, 您可以看到我们有三组消息, 显示屏上只有纯白色警告,
‫黄色警告｡
‫所以它更突出了一点, 一个错误, 很明显, 它更突出了｡
‫现在, 我们可以将数据添加到日志消息中｡
‫我将删除日志中的警告和错误行, 然后添加一些｡
‫然后输入到这个字符串中, 这个字符串将被打印出来｡
‫例如,
‫如果我想打印出为特定平台配置的移动距离, 这非常简单, 我们可以说“配置的移动距离”, 这就是将要显示的文本｡
‫我在这里加个冒号｡
‫记住, 这些都在双引号内, 以确保我们包括在文本中｡
‫然后我们可以在百分号后面加上F字符｡
‫您可以看到, 它以不同的方式突出显示, 因为这就是此处指定的格式｡
‫这是历史上C的由来｡
‫通常你会画一个百分号, 然后是一些字母, 你可以看到下面的不同字母｡
‫F对应于十进制浮点数, 您可以在示例列中看到输出的示例｡
‫这里还有很多其他的东西我们可以用D或者I来表示十进制整数｡
‫所以我们用F是因为我们有一个浮点数｡
‫然后我们要做的就是在E log函数中加入另一个参数｡
‫所以确保你是在关闭了这个文本函数的括号之后这样做的, 而不是在这里之后放一个逗号｡
‫所以在这两个括号之间, 它应该在外部集合的内部, 但是在内部集合的外部, 如果这有意义的话｡
‫然后我们可以传递变量的值, 这样我们就可以传递移动距离变量, 就像这样, 让我们进入虚幻,
‫看看它的实际操作｡
‫我点击了编译按钮, 关闭了编译窗口, 点击了播放, 然后点击了两次Tilde来打开日志｡
‫您可以看到不同平台的配置移动距离,
‫两个移动平台为50500, 场景中的三次推送为1500｡
‫所以有一点有趣或者有启发性的信息是,
‫我们之前已经讨论过, 我们是如何超过或者确实超过移动的距离的, 我们很想知道这是在什么水平上发生的｡
‫所以我们可以在if语句中创建一个浮点变量｡
‫所以我们知道, 我们目前已经超出了｡
‫我们可以说过冲一个浮点变量叫过冲｡
‫我们将它设为移动距离减去移动距离｡
‫这就告诉了我们超调量是多少｡
‫我想让你们试着记录一下我们刚刚创建的过冲变量｡
‫所以使用Yule日志功能｡
‫在这里, 它是供参考的, 至少是你可能会使用的那种结构｡
‫您也可以练习使用日志自动完成功能, 然后编译和测试代码, 看看它是否工作｡
‫暂停视频, 开始体验｡
‫好吧, 我会的
‫欢迎回来｡
‫因此, 我们将在此处使用自动完成选项｡
‫我将关闭侧边栏, 以便留出更多空间｡
‫在这个里面, 如果我们创建了变量, 我们会输入你的日志, 然后按回车键,
‫然后我们会让它显示出来｡
‫我们要让文本平台过冲, 然后我们要使用百分比F, 然后在这两个括号之间,
‫我们要为过冲变量添加一个新的参数, 就像这样, 现在让我们回到虚幻｡
‫我点击编译按钮, 关闭实时编码日志, 点击播放, 双击那个波浪号键｡
‫你可以看到, 每次平台转向时, 它都会打印出一条日志消息,
‫说明超出了多少单位｡
‫你可以看到网｡
‫在很多情况下, 它会超过相当多的单位, 相当明显的单位数量, 三个单位或0｡
‫五个单位｡
‫基本上是0｡ 5%到三厘米｡
‫这就足够了, 在你的游戏过程中, 这些平台可能已经漂移｡
‫我们已经对此实施了修复, 这很好｡
‫好东西｡
‫希望现在你有了另一个工具, 可以尝试找出代码中的内容｡
‫稍后, 当你对自己编写代码更有信心的时候, 试着找出哪里不太好｡
‫好的, 我们下节课见｡