Foreach语句
UnigineScript的应用范围仅限于实现与材料相关的逻辑(材料表达式,可编写脚本的材料,画笔材料)。 不要将UnigineScript用作应用程序逻辑的语言,请改用C#/C++,因为这些API是首选的。 无法保证UnigineScript中新引擎功能的可用性(超出其应用范围),因为当前的支持级别仅假设已解决关键问题。
语法
foreach(value_variable; container; loop_increment) {
// some_code;
}
部分
- value_variable为当前容器元素的值。
- container 是一个矢量或一副贴图。
- 在每个迭代结束时执行loop_increment。
每个迭代中,当前元素的值会被分配给value_variable,容器内部游标会移至下一个容器元素所在处。value_variable的类型无关紧要, loop_increment为可选选项。
foreach模块内部元素的变化会对容器造成影响;在每个迭代的尾期会发生同步现象。
示例
- 对于每种矢量元素:
此示例会得出下列结果:
int vector[4] = ( 1, vec3(1,2,3), -7.2e-2, "end" ); foreach(int i; vector) { log.message("%s\n",typeinfo(i)); }
int: 1 vec3: 1 2 3 float: -0.072 string: "end"
- 对于每个贴图元素:
结果为:
int map[] = ( 1 : "begin", 2 : 2, 3 : "end" ); foreach(int i; map) { log.message("%s\n",typeinfo(i)); }
string: "begin" int: 2 string: "end"
- 增量:
输出为:
foreach(int i, j = 0; vector; j++) { log.message("%d: %s\n",j,typeinfo(i)); }
0: int: 1 1: vec3: 1 2 3 2: float: -0.072 3: string: "end"
最新更新:
2022-03-10
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)