版本:Unity 6 (6000.0)
语言中文
  • C#

SearchExpressionEvaluationHints.ThreadNotSupported

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每条变更建议,并在适用时进行更新。

关闭

提交失败

由于某种原因,无法提交您建议的更改。请在几分钟后<<a>重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

指定评估器不支持工作线程评估,且应仅在主线程中评估评估器。如果评估器使用线程不安全的 Unity API(比如 AssetDatabase),则可能是这种情况。

[Description("Returns asset paths corresponding to a list of instance ids")]
[SearchExpressionEvaluator("IdsToPaths", SearchExpressionEvaluationHints.ThreadNotSupported, SearchExpressionType.Iterable)]
public static IEnumerable<SearchItem> IdsToPath(SearchExpressionContext c)
{
    foreach (var idItem in c.args[0].Execute(c))
    {
        if (SearchExpression.TryConvertToDouble(idItem, out var idNum))
        {
            var id = (int)idNum;
            var path = AssetDatabase.GetAssetPath(id);
            if (!string.IsNullOrEmpty(path))
            {
                yield return SearchExpression.CreateItem(path, c.ResolveAlias("asset path"));
            }
        }
    }
}