黄金民的个人文档

黄金民的个人文档


UE培训英语作业记录

<p>[TOC]</p> <table> <thead> <tr> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>作者</td> <td>黄金民</td> </tr> </tbody> </table> <h2>数学样例核心蓝图类</h2> <pre><code class="language-plantuml">@startuml rectangle BP_GameManager rectangle BP_CharCharacter BP_GameManager --&gt; BP_CharCharacter @enduml</code></pre> <h3>1. BP_GameManager</h3> <p>这个蓝图类是实现数学游戏逻辑的蓝图类,它会控制整个数学游戏的逻辑,特别是它会控制生成BP_CharCharacter,然后控制换mesh和设置动作等</p> <h3>2. BP_CharCharacter</h3> <p>这个蓝图类已经实现了字母,数字等动画,换皮等功能,可以直接复用,有需要可以扩展。</p> <h2>英语作业的快速实现思路</h2> <ol> <li> <p>直接在原来的工程上复用已经做好的资源和动作,导入资源和绑定动作不需要再做,甚至应该直接复用BP_CharCharacter</p> </li> <li> <p>在原来BP_GameManager上添加英语的逻辑,添加差不多后,可以考虑把原来数学的逻辑删除,或者重新复制一个重命名为英语的GameManager</p> </li> <li>数学样例里用到的蓝图技巧已经可以用来实现英语的作业,不需要再额外学习其它UE的功能,切记,我就是想用行为树,简化逻辑的控制,后来发现有坑,浪费了不少时间。</li> </ol> <h2>分享几个很重要的技巧或者闭坑指南</h2> <h3>1.查找蓝图功能节点(类似查找一个类都提供了哪些函数)</h3> <p>比如字符串操作,可以发现【getsubstring】在Utilities/String下面 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=53bb7cba5a2fba43c048fd4cbef7c4d7&amp;file=file.png" alt="" /> 那么所有字符串操作,就可以在不输入关键词的情况下,直接找到这个路径,看都有那些方法可以用 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=fc0545c93a143f0ac54984440684bf71&amp;file=file.png" alt="" /></p> <h3>2.Unreal的距离单位是1cm和Unity里距离单位1m不同</h3> <p>我在用AIMoveTo的时候,设置了目标距离偏移了1,发现一直没有动,查了很久才注意到这个问题。</p> <h3>3.为了响应用户键盘输入,需要设置Input为Player0</h3> <p>找到场景中的蓝图对象,在detail面板中设置,这个锐锋课上有讲,但是自己做的时候可能想不起这个细节 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=fb8efbb5a9b95e7a929d4152aa301017&amp;file=file.png" alt="" /></p> <h3>4. 同个蓝图功能节点,输出到不同的节点,数据可能不同</h3> <p>比如下面这个随机函数,在两个PrintString中输出的值是不一样的,这个在代码上很好理解,在蓝图中有点违反直觉,解决办法是此类值最好用变量存下来,可以保证值在不同的调用时机是一致的,也可以减少连线的数量。</p> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=7d8ab01a0fa96781902c39b03abbdae6&amp;file=file.png" alt="" /></p> <h3>5. 在for循环中使用AIMoveTo的问题</h3> <p>AIMoveTo是个特殊的蓝图节点,它是异步的,我们的业务需要在所有的Actor走到目标位置后,停止动作,实际中发现只有一个Acotr会停止走的动作,其它会保持走的动作,我猜测是等动作结束,循环体取到的actor是最后一个了,这个问题用编码,可以用闭包来解决,但是用蓝图不知道如何解决,我只能用遍历所有的Actor,把它们全部停止的方案,只能算是个workaround</p> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=af8267709313ea9be2216c63c939d55c&amp;file=file.png" alt="" /></p> <h3>6. 问号资源缺失</h3> <p>快速的方法是可以用数字来代替,或者直接从U3D那边导入问号的FBX, 位置看下图,问号的资源并没有带骨骼,原来U3D工程是用脚本来控制,有兴趣的可以自己实现一个问号的蓝图类 U3D中的路径 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=abcc636d746ec58e41af1f305ef5a267&amp;file=file.png" alt="" /> 导进UE的路径 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=5701139531897f39f24e007eb74feefb&amp;file=file.png" alt="" /></p> <p>实现问号旋转的蓝图类</p> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=7c5d9abe4c7f8e96efa35a0fd0a92ab8&amp;file=file.png" alt="" /></p>

页面列表

ITEM_HTML