‫你好, 欢迎｡
‫在这节课中, 我们将学习如何在C++中使用字符串将动态文本添加到日志消息中｡
‫因此, 让我们深入学习字符串和C++｡
‫我们已经看到了如何从UI日志中打印出一些简单的内容, 但是如果我们想打印出更多的文本,
‫比如演员姓名, 或者更复杂的内容, 比如矢量的文本表示,
‫该怎么办？
‫它通常没有格式说明符, 因为格式说明符是从C时代开始的, 与C++相比,
‫,是一种非常基本的编程语言｡
‫所以有些事情当时还没有想出来｡
‫所以像向量这样的东西不会包含在我们指定它们的格式中｡
‫所以我们倾向于用字符串来做这件事｡
‫正如我们在过去所说的, 字符串只是文本变量｡
‫它们是包含文本的变量, 因此我们可以声明字符串｡
‫在C++中, 我们在之前使用向量的地方使用了F向量｡
‫这里我们将使用F字符串作为字符串的类型, 这样我们就可以得到一个字符串｡
‫现在我把字符串作为变量名.
‫如何设置字符串值？
‫我们在这里已经看到了一点｡
‫这些双引号在C++中表示字符串值｡
‫这里所有的表达式,
‫这里有双引号, 头文件中也有双引号, 表示字符串表达式的类别.
‫所以我们要做的就是从这里设置字符串变量, 我会说字符串值,
‫只是为了给予我们了解一下, 然后在行尾放一个分号, 然后我们怎么在log语句中显示呢？
‫所以我将从这里删除移动距离作为日志的参数,
‫我将更改日志消息中的文本, 这是我的字符串冒号｡
‫然后我们用percent SSE来代替F, 来表示我们要输出的字符串｡
‫然后我们传递给对数函数的参数在这两个括号之间就是我的字符串.
‫不幸的是, 如果它能自己工作的话, 那就太好了｡
‫但不幸的是, Unreal中有一点复杂, 他们不会接受一个简单的字符串作为YUI日志的参数｡
‫这里需要一点转换操作符,
‫我们在my字符串前面加一个星号, 它就把F字符串转换成U log内部需要的格式.
‫我们不需要太多细节来解释它为什么会这样｡
‫这已经超出了我们现在需要知道的水平｡
‫我认为学习它是很重要的, 因为当我们弹奏百分音时, 我们总是需要在f弦前面有一个星星｡
‫所以让我们看看这是否工作, 通过进入虚幻, 并点击编译按钮｡
‫然后我们将关闭实时编码, 点击播放, 打开输出日志, 这是我的字符串,
‫我的字符串值｡
‫所以它输出my字符串中的值｡
‫但很明显, 我刚才写的这段代码并不是特别有用, 因为, 我可以把这个字符串写进去.
‫为什么要费心去做这个替身的事呢？
‫更有趣的是, 我们把一个动态值放到这个变量中.
‫所以我们可以得到名字并调用它｡
‫这是一个在移动平台actor中可用的函数, 它获取我们在level out liner中看到的actor的名称,
‫我们可以将其放入变量中｡
‫我将调用该变量名称而不是字符串, 并在US日志中更改其名称｡
‫然后我们可以将日志消息的文本更改为开始play冒号, 然后它将成为演员的姓名｡
‫让我们回到虚幻世界, 停止播放, 点击, 编译, 继续, 点击播放,
‫打开输出日志, 你可以看到我们得到消息, 开始播放移动平台, 开始播放移动｡
‫三号站台
‫库伯三推, 守五, 推, 守七｡
‫所以我们有大人物和所有不同演员的名字｡
‫这一点非常有用,
‫因为在打印出过冲距离的过程中, 并不总是很清楚谁是过冲的, 因为他们都被搞混了｡
‫因此, 能够打印出生成日志消息的参与者的名称对于查明问题所在非常有帮助｡
‫正在发生｡
‫所以我想挑战你们把这个名字和这个超调记录在一起, 这样我们就可以看到谁超调了, 超调了多少｡
‫你要为演员的名字添加一个变量, 就像我们在开始播放”中做的那样｡
‫你要把名字放进去, 然后在日志消息中的任何地方,
‫添加一个指定的百分比, 我们要在日志消息中打印这个过冲, 你要为这个名字添加一个参数｡
‫我们仍然希望在参数列表中包含overshoot变量, 但毕竟, 在这个变量之前,
‫你还需要把变量的参数也放在变量名中｡
‫重要的是, 要知道参数的顺序与消息中说明符的顺序相匹配｡
‫所以如果你把percents放在percent f前面, 那么这就是顺序｡
‫名字应该在过冲之前, 或者如果你已经做了其他的事情, 你应该反过来做｡
‫不要忘了在变量名前加上星星, 以便将字符串转换为您的日志可以使用的内容｡
‫暂停视频, 开始体验｡
‫好吧, 我会的
‫欢迎回来｡
‫所以我们从一个变量开始, 这并不是绝对必要的, 但我们使用这个变量只是为了简单起见,
‫并且这行要短一点.
‫所以我们有一个F字符串, 名字用大写字母, 通常是变量名的开头.
‫我们将对变量执行一个getname操作, 然后将其用作参数.
‫但是, 我将把我的格式放在哪里, 在日志消息中指定它？
‫我将把它作为日志消息中的第一项内容, 以明确这是来自该设备的日志消息｡
‫所以我要把percent放在前面, 这意味着我的论证要在过冲论证之前｡
‫所以我们要取他们的名字, 把它放在这里, 我们需要在名字前面加一个星号,
‫以便进行适当的转换｡
‫现在, 让我们回到编辑器｡
‫停止播放, 点击重新编译, 关闭终端, 点击播放, 打开输出日志｡
‫你可以看到我们开始收到分笔成交点的消息｡
‫推球和立方体被一个推球和q11击中｡
‫所以你可以看到, 你可以得出一个我们以前无法得出的结论, 那就是,
‫移动平台越快, 推动立方体的超调越多, 而移动平台的超调似乎越少,
‫这是我所期望的｡
‫不过, 很高兴看到日志里证实了这点｡
‫好东西｡
‫这就是我们的伐木消遣｡
‫希望你们觉得这很有趣, 我们下节课再见.