表达式 | 描述 |
---|---|
distinct {Variadic | AnyExpression} |
生成多个表达式的唯一集合并集。 |
except {Iterable, Variadic | Iterable} |
生成两个序列的集合差。 |
first {Number, Variadic | Iterable} |
返回每个表达式的第一个结果。 |
groupBy {Iterable, Optional | Selector} |
根据指定的@selector 对搜索结果进行分组 | 提示:ExpandSupported |
intersect {No signature} |
生成两个序列的集合交集。 |
last {Number, Variadic | Iterable} |
返回每个表达式的最后一个结果。 |
map {Iterable, AnyValue} |
使用变量映射表达式结果以形成新的表达式。 |
select {No signature} |
通过选择要获取的值和属性来创建新结果。 |
sort {No signature} |
根据条件对表达式结果进行排序。 |
union {Variadic | AnyExpression} |
生成多个表达式的唯一集合并集。 |
表达式 | 描述 |
---|---|
eq {Iterable, Selector, Literal | QueryString} |
保留具有相等值的搜索结果。 |
gt {Iterable, Selector, Literal | QueryString} |
保留具有更大值的搜索结果。 |
gte {Iterable, Selector, Literal | QueryString} |
保留具有大于或等于值的搜索结果。 |
lw {Iterable, Selector, Literal | QueryString} |
保留具有较小值的搜索结果。 |
lwe {Iterable, Selector, Literal | QueryString} |
保留具有小于或等于值的搜索结果。 |
neq {Iterable, Selector, Literal| QueryString} |
保留具有不同值的搜索结果。 |
where {Iterable, Text | Selector | QueryString} |
排除表达式无效的搜索结果。 |
表达式 | 描述 |
---|---|
avg {Selector, Variadic | Iterable} |
查找每个表达式的平均值。 |
count {Variadic | Iterable} |
计算表达式中结果的数量。 |
max {Selector, Variadic | Iterable} |
查找每个表达式的最大值。 |
min {Selector, Variadic | Iterable} |
查找每个表达式的最小值。 |
sum {Selector, Variadic | Iterable} |
计算每个表达式的总和值。 |
表达式 | 描述 |
---|---|
alias {Iterable, Text | Selector | Iterable} |
为表达式分配别名。 | 提示:AlwaysExpand |
constant {Literal | Function} |
返回每个表达式的第一个结果。 |
format {Text | Selector, Variadic | AnyValue} |
将参数转换为字符串,允许您格式化结果。 |
print {Text | Selector, Variadic | Iterable} |
在控制台打印表达式结果。 |
query {No signature} |
提示:ExpandSupported |
random {Variadic | Iterable} |
随机选择每个表达式的结果。 |
set {Variadic | Iterable} |
返回任何表达式的元素集。 |
text {No signature} |
将任何表达式的文本转换为文字字符串。 |
alias{set, aliasName} -> {集合中的每个元素都被分配了一个aliasName}
alias{set, formatString} -> {集合中的每个元素都被分配了一个根据formatString计算的别名}
此函数有效地为表达式分配了一个别名。这等效于使用“as”关键字。另请参阅别名用法。
示例
count{t:material as material}
等效于
count{alias{t:material, material}}
示例
为元素分配别名“number”:1、2 和 3。
alias{[1, 2, 3], 'number'}
示例
为 1、2 和 3 动态分配并计算别名
alias{[1,2,3], 'number @value}'}
avg{selector, sets...} -> {每个集合中selector值的平均值}
avg{set...} -> {每个集合中@value的平均值}
查找作为参数传递的每个集合中每个项目的平均值。
示例
avg{[1,2,3,4, 5,6], [1, 1, 1], []} -> {3.5, 1, 1}
示例
avg{@size, t:texture, t:material} -> {1100576, 3618}
constant{value} -> {常量值}
尝试将值转换为常量文字值:数字、字符串或布尔值。这可用于在某些函数中消除参数类型的歧义。
示例
first{constant{5}, t:material}
count{sets...} -> {每个集合的计数}
计算作为参数传递的每个集合中结果的数量。
示例
count{t:texture, t:material} -> {359, 194}
示例
从名为“assets”的索引中,按类型对资源进行分组,并计算每个资源组的数量。获取五个最大的组。
first{5, sort{count{...groupBy{a:assets, @type}}, @value, desc}}
distinct{sets...} -> {所有集合中所有唯一元素的统一集合}
Distinct 创建一个包含作为参数传递的所有集合中找到的所有元素的集合。与 union 一样,不会保留重复元素。
示例:此示例显示重复项已删除。
distinct{[1,2,3], [3,4,5]} -> {1,2,3,4,5}
示例
distinct{*.mat, t:shader} -> {项目中的所有材质和着色器}
示例
选择名为“project”的索引中每个资源的@type
,并保留每种类型的单个资源,因为重复项是根据项目的@value
计算的。
distinct{select{a:project, @type}}
eq{set, value} -> {所有等于value的元素}
eq{set, selector, value} -> {所有selector值等于value的元素}
通过保留等于给定值的元素来过滤元素集。
示例
eq{[2,4,5,6,4,3], 4} -> {4,4}
这等效于
where{[2,4,5,6,4,3], “@value=4”}
示例
查找所有#width
序列化属性为 256 的纹理。
eq{t:texture, #width, 256}
这等效于
t:texture #width=256
except{set, sets...} -> {新元素集}
Except 创建一个包含不在作为参数传递的任何集合中的所有元素的集合。
示例
except{[1,2,3,4,5], [2,3], [5], [6]} -> {1,4}
示例
except{t:prefab, t:prefab ref=select{t:texture, @path}}
first{sets...} -> {每个集合中的所有第一个元素}
first{count, sets...} -> {每个集合中的前count个元素}
First 返回作为参数传递的每个集合中找到的第一个元素的集合。如果传递了count
作为参数,则将获取每个集合中的前count个元素。
示例
first{[3, 4,5], [9, 28, 3]} -> {3,9}
示例
first{3, [9, 28, 3, 4, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7]} -> {9, 28, 3, 1, 2, 3}
示例
按大小降序对项目中的所有 .fbx 文件进行排序,并显示三个最大的文件。
first{3,sort{*.fbx, @size, desc}}
format{expression} -> {值转换为字符串的项目集}
format{formatString, expression} -> {通过应用格式字符串设置值的项目集}
Format 可以以两种方式使用。当仅使用单个表达式参数时,它将尝试将项目的当前@value
转换为字符串表示形式。
如果 format 与格式字符串一起使用,它将用项目的选定值替换格式字符串中的所有选择器,并将此格式化的字符串设置为项目的@value
。
示例
print{format{“value=@value”, [1,2,3,4]}}
将在控制台窗口Unity 编辑器窗口,显示 Unity 或您自己的脚本生成的错误、警告和其他消息。 更多信息
参见词汇表中打印[“value=1”,“value=2”,“value=3”,“value=4”]。
groupBy{set, selector}
-> {根据其selector分组的多个项目集}
示例
要计算项目中每种类型的资源数量,groupBy
函数与扩展运算符相结合,允许您根据选择器自动对项目进行分组。在下面的示例中,它创建了一组相同类型的项目。扩展运算符允许您将此项目集扩展为多个相同类型的项目集。
count{...groupBy{a:assets, @type}}
-> {numberOfAssetType1, numberOfAssetType2, .. numberOfAssetTypeN}
gt{set, value} -> {所有大于value的元素}
gt{set, selector, value} -> {所有selector值大于value的元素}
通过保留大于给定值的元素来过滤元素集。
示例
gt{[2,4,5,6,4,3], 4} -> {5,6}
gte{set, value} -> {所有大于或等于value的元素}
gte{set, selector, value} -> {所有selector值大于或等于value的元素}
通过保留大于或等于给定值的元素来过滤元素集。
示例
gte{[2,4,5,6,4,3], 4} -> {4,5,6,4}
intersect{sets...} -> {所有集合中都包含的元素}
intersect{sets…, selector} -> {selector值包含在所有集合中的元素}
Intersect 创建一个新元素集,其@value
包含在所有集合中。如果将选择器作为参数传递,则使用选择器值来比较元素。
示例
intersect{[1,2,3,4,5], [3, 5], [6, 3]} -> {3}
示例
查找大小大于 4000 字节的所有纹理,并与路径包含单词“rock”的所有纹理相交。
intersect{t:texture size>4000, t:texture @path:rock}
last{sets...} -> {每个集合中的所有最后一个元素}
last{count, sets...} -> {每个集合中的最后count个元素}
Last 返回作为参数传递的每个集合中找到的最后一个元素的集合。如果传递了count
作为参数,则将获取每个集合中的最后count个元素。
示例
last{[3, 4,5], [9, 28, 3]} -> {5, 3}
示例
last{3, [9, 28, 3, 4, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7]} -> {7,8,9,5,6,7}
示例
按大小升序对项目中的所有 .fbx 文件进行排序,并获取最后三个文件。
last{3,sort{*.fbx, @size}}
lw{set, value} -> {所有小于value的元素}
lw{set, selector, value} -> {所有selector值小于value的元素}
通过保留小于给定值的元素来过滤元素集。
示例
lw{[2,4,5,6,4,3], 4} -> {2,3}
lwe{set, value} -> {所有小于或等于value的元素}
lwe{set, selector, value} -> {所有selector值小于或等于value的元素}
通过保留小于或等于给定值的元素来过滤元素集。
示例
lwe{[2,4,5,6,4,3], 4} -> {2,4,3,4}
map{set, <包含要替换的选择器的字符串>}
map 运算符是表达搜索表达式的一种函数式方法。它使用变量映射表达式结果以形成新的表达式。
以下示例
map{t:texture, t:prefab ref=@id}
-> {t:prefab ref=<textureId1>} {t:prefab ref=<textureId2>} ... {t:prefab ref=<textureIdN>}
将为t:texture
返回的每个纹理运行查询t:prefab ref=@id
。
这等效于运行
{t:prefab ref={t:texture}}
max{sets...} -> {每个集合中的最大值元素}
max{selector, sets...} -> {每个集合中具有最大
@selector
值的元素}
查找作为参数传递的每个集合的最大@value
。如果将选择器作为参数传递,则查找具有最大@selector
值的元素。
示例
max{[1,2,3,4,5,6], [2,4,5]} -> {6, 5}
示例
查找最大的 .png 文件和最大的 .jpg 文件。
max{@size, *.png, *.jpg} -> {<最大的 .png 文件>,<最大的 .jpg 文件>}
min{sets...} -> {每个集合中的最小值元素}
min{selector, sets...} -> {每个集合中具有最小
@selector
值的元素}
查找作为参数传递的每个集合的最小@value
。如果将选择器作为参数传递,则查找具有最小@selector
值的元素。
示例
min{[1,2,3,4,5,6], [2,4,5]} -> {1, 2}
示例
查找最小的 .png 文件和最大的 .jpg 文件。
min{@size, *.png, *.jpg} -> {<最小的 .png 文件>,<最小的 .jpg 文件>}
neq{set, value} -> {所有不等于value的元素}
neq{set, selector, value} -> {所有selector值不等于value的元素}
通过保留不等于给定值的元素来过滤元素集。
示例
neq{[2,4,5,6,4,3], 4} -> {2,5,6,3}
print(FormatString | selector, set)
Print 函数接收一个格式字符串(或选择器)和一组项目,并在控制台打印每个项目的格式化结果。这对于调试项目的数值很有用。
在一个项目中,以下表达式会在搜索窗口中返回纹理及其路径,并在控制台窗口中打印它们
print{'path=@path', t:texture}
示例
print{@value, [1,2,3,4]}
会在控制台窗口中打印 [1,2,3,4]。
query{value} -> {query expression}
尝试将 value 转换为查询表达式。这可以用于在某些特定函数中消除参数类型的歧义。
示例
count{t:material}
等价于
count{query{t:material}}
random{sets...} -> {random elements in each set}
从传递作为参数的每个项目集中随机选择元素,并创建一个新的集合。
示例
random{[1,3,5], [6,4,2]} -> {3, 2}
返回每个集合中的随机结果。
select(<set>, selectorForLabel, selectorForDesc, otherSelectors...)
Select 是一个函数,用于创建一个新的搜索项目集合,并从原始搜索项目集合中提取或转换属性。
select 函数的第二个参数 (selectorForLabel) 将选定的值赋给新项目的标签。
第三个参数 (selectorForDesc) 将选定的值赋给新项目的描述。
select 函数中的最后一个选择器也指定了项目的 value 值。
示例
在项目中搜索纹理时,使用 select
可以生成一个项目集,其中标签是路径,描述是纹理的大小。
select{t:texture, @path, @size}
select 语句中的最后一个选择器还会设置项目的 value 值。例如,对于 select{t:texture, @path, @size}
,这意味着 @size
也会成为搜索项目的 @value
。切换到表格视图,查看搜索表达式如何替换标签和描述并设置 value 值。
select
函数的选择器本身也可以是函数。这些函数中的选择器根据正在处理的搜索项目进行计算。
示例
select{t:texture, @path, count{t:prefab ref=@id}}
t:texture
)@path
(@path
)count{t:prefab ref=@id}
)。在本例中,@id
指的是每个纹理项目的 SearchItem.id
。如果你使用别名运算符,可以将属性值赋给搜索项目字段。
示例
print{"@pow", select{t:script, @path as pow}}
这会从搜索项目中提取 @path
属性,并将其赋给由 select
函数创建的新搜索项目中名为 pow
的搜索项目字段。
set{sets...} -> {set of all elements in all sets}
创建一个包含作为参数传递的所有集合中所有元素的集合。这等效于使用“[集合,的,元素]”表示法。
示例
set{[1, 2,3], [4,5,6]}
等价于
[[1,2,3], [4,5,6]]
,也等价于
[1,2,3,4,5,6]
sort{set, selector} -> {set of items sorted in ascending order according to selector value}
sort{set, selector, desc} -> {set of items sorted in descending order according to selector value}
根据选择器值按升序或降序对一组项目进行排序。
示例
按升序(从小到大)对该集合进行排序。
sort{[4,2,7,5,8,1,9], @value} -> {1,2,4,5,7,8,9}
示例
按降序(从大到小)对该集合进行排序。
sort{[4,2,7,5,8,1,9], @value, desc} -> {9,8,7,5,4,2,1}
示例
根据其 @size 按降序(从大到小)对项目中的所有纹理进行排序。
sort{t:texture, @size, desc}
sum{sets...} -> {sum of all elements in each set}
sum{selector, sets...} -> {sum of all elements in each set}
查找作为参数传递的每个集合中每个项目的 @value
之和。如果传递选择器作为参数,则查找每个集合中每个元素的 @selector
值之和。
示例
sum{[1,2,3,4,5,6], [2,4,5]} -> {21, 11}
示例
查找项目中所有纹理 @size
的总和。
sum{@size, t:texture}
text{expression} -> {“text of the expression”}
从表达式中创建一个字符串。这等效于使用“”或‘’分隔符。
示例
[text{hello}]
等价于
[“hello”]
或 [‘hello’]
union{sets...} -> {Unified set of all unique elements in all sets}
Union 创建一个包含作为参数传递的所有集合中所有唯一元素的集合。与 distinct
一样,不会保留元素的重复项。
示例
此示例显示重复项已被删除。
union{[1,2,3], [3,4,5]} -> {1,2,3,4,5}
示例
union{*.mat, t:shader} -> {项目中的所有材质和着色器}
where{set, filterString | selector} -> {filtered set of items}
Where 是一个通用的过滤函数,它接收一个选择器或包含选择器用法和运算符(>,==,…)的字符串来过滤集合的元素,并返回新的过滤后的集合。
示例:根据数值过滤数字
where{[1,2,3,4,5,6,7,8,9,10], '@value>4 and @value<9'}
-> {5,6,7,8}
示例:查找所有包含“effect”一词的 音频剪辑Unity 中音频数据的容器。Unity 支持单声道、立体声和多声道音频资产(最多八个声道)。Unity 可以导入 .aif、.wav、.mp3 和 .ogg 音频文件格式,以及 .xm、.mod、.it 和 .s3m 跟踪模块格式。 更多信息
参见 术语表
where{t:AudioClip, @path:effect}