循环 | Loops
这些拼图提供了在拼图场景中指定迭代的方法。
内容
注意不要创建无限循环
使用这些拼图时要额外小心,因为会很容易产生无限循环,导致浏览器崩溃或假死。如果您不小心保存了一个包含无限循环的场景,可以从备份中恢复之前版本的拼图。
拼图参考
repeat
此拼图将放置在 do 槽中的拼图运行指定次数。
例如,下面这组拼图创建了几个立方体的副本,并将它们随机地放置在场景中。
for each in list
此拼图遍历一个指定的列表,并为该列表中的每一个项目运行放置在 do 槽中的拼图。可以通过自动创建的变量来获取遍历对应的项目。
例如,下面这组拼图为列表中的所有对象添加标注。
for each in dict
此拼图遍历一个指定的字典,并为该字典中的每一个项目运行放置在 do 槽中的拼图。可以通过自动创建的键/值变量来获取遍历对应的项目。
例如,下面这组拼图将存储在字典中的飞行方向打印到浏览器控制台。
count with
此拼图与for each相似,但它以数字序列的形式给出了循环变量的值。
例如,下面这组拼图以2为步数从2数到10,从而创建了数字2、4、6、8和10,每一步都执行一次克隆立方体,并使用这些数值在X轴方向为其设置位置。
repeat while / until
只要指定的逻辑条件为真,repeat while 拼图就会运行放在 do 槽中的拼图。相反,repeat until 拼图在指定的逻辑条件评估为false后就停止运行。
此拼图很适合在循环内部有变化,并且影响到您决定继续或停止执行迭代的情况下使用。例如,下面这组拼图使用了 repeat while 变体,只要用户回答"yes",就一直询问用户的答案。
您可以使用 repeat until 变体来问同样的问题,但方式稍微有点烦人,只有回答"no"才会停止。
break / continue
大多数的循环都是运行到满足条件(在 repeat 拼图的情况下),或者直到循环变量取完所有的值(在 count with 和 for each 拼图的情况下)才终止。此拼图提供了额外的方式来控制循环行为。虽然下面的例子使用了 for each 拼图,但是此拼图适用于任何类型的循环。
break 变体可实现提前退出循环。例如,下面这组拼图执行了对一个名为"Cube"的对象的搜索。当找到该对象并设置结果变量后,就没有必要继续迭代搜索了,因此我们使用中断脱离当前循环。
与之相对,continue 变体会跳过当前的迭代,从而开始下一个循环的迭代。例如,下面这组拼图为场景中除"Cube"之外的所有对象添加了标注。
在使用拼图时遇到困难?
欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。