循环 | Loops
这些拼图提供了在拼图场景中指定迭代的方法。

内容
注意不要创建无限循环
使用这些拼图时要额外小心,因为会很容易产生无限循环,导致浏览器崩溃或假死。如果您不小心保存了一个包含无限循环的场景,可以从 备份 中恢复之前版本的拼图。
拼图参考
repeat(重复)
此拼图将放置在 do 槽中的拼图运行指定次数。

例如,下面这组拼图创建了几个立方体的副本,并将它们随机地放置在场景中。

for each
这个拼图遍历一个指定的列表,并为该列表中的每一个项目运行放置在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),在线寻求帮助。