「游戏开发之虚幻引擎篇」“用”一个实例

发布时间:2024-04-09 13:06:44 浏览量:157次

补充之前没有说到的一个“实例化”的方法,那就是引擎中的"生成Actor"节点。虽然把蓝图直接拖入视口的场景中进行"实例化"的方式很快捷,但在实际开发中,很多东西并不可能一开始就放入场景,因此在项目“运行过程”中动态的生成实例是很常见的需求。

上篇说完“引”,现在就要开始“用”了。无论我们是写作文,亦或是写程序通常都容易犯两种错误。一种是“语法错误”,例如写了个错别字,某个词语的用法不对等,另一种则是“逻辑错误”,例如本应该是“我咬了一口苹果,所以苹果少了一块”,但变成了“苹果少了一块,所以我咬了一口苹果”。

语法错误没有什么大不了,人嘛,偶尔疏忽写错字很正常,稍微检查一下就能解决,所以现在很多软件甚至可以直接帮你检测语句中的错别字。但在写蓝图时,其实你并不需要太担心语法问题。而逻辑错误就比较烦人了,虽然上面举的逻辑错误的例子一眼就可以看出来毛病,但在实际开发中,这种错误其实并不容易在早期就发现,要等到项目执行起来出了问题时,你才会发现不对劲。而我们在“用”一个实例的时候,往往最容易出现的就是逻辑错误问题。而防止逻辑错误的核心就是一条:“先确保'引'成功,再是'引'的时机恰当,最后才开始'用'”

在蓝图里,对一个变量的操作无非就是两种:1.获取(Get),也就是查看盒子,2.设置(Set),也就是把实例放入盒子。

但注意这只是对变量的操作,也就是说你只是对“盒子”操作,而通常你都得先检查盒子里有没有真东西,也就是先确保“引”成功,那么就如上一篇提到的,先用"Valid"进行检查。

然后就是“引”的时机要正确,但这一条并没有什么固定的套路。举个简单的例子,有一个苹果实例,然后流程是“一整个苹果->把苹果切成小块->放入榨汁机->得到一杯苹果汁->把这杯苹果汁放进冰箱里”。而“我”这个蓝图里用一个“苹果”变量引用了前面的苹果实例,而“我”的蓝图里需要进行的流程是“喝到一杯苹果汁”。那么很明显,要能够成功执行“喝到一杯苹果汁”这个流程,必须在先让苹果实例的流程执行到“得到一杯苹果汁”才行。之前的任何时机,都会导致我的"喝到一杯苹果汁"这个流程失败,而这也就是产生了逻辑错误。


上面的例子要看出毛病也同样不难,但在实际项目中,一个流程可能要经过几十上百个节点,这里绕那里绕的结果,最终就是你很难一眼看出流程中的逻辑错误问题。这也就是为什么有人听说程序员上班就是天天跟Bug打交道,而导致Bug的很大一部分原因实际都来自于逻辑错误。蓝图既然就是在编程,那么自然也绕不开这个问题,因此我们在写蓝图时一定要头脑清晰,任何时候都要记住,“先确保'引'成功,再是'引'的时机恰当,最后才开始'用'”

热门课程推荐

热门资讯

请绑定手机号

x

同学您好!

您已成功报名0元试学活动,老师会在第一时间与您取得联系,请保持电话畅通!
确定