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

ObjectIndexer.IndexPropertyComponents

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交的内容,但我们确实会阅读用户提出的每项建议更改,并在适用的情况下进行更新。

关闭

提交失败

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

关闭

取消

声明

public void IndexPropertyComponents(int documentIndex, string name, string value);

参数

documentIndex 已编入索引的属性的文档句柄。
name 用于检索值的键。
value 要添加到索引的值。

描述

为属性值的多个变化编制索引。

在示例中,为“AudioClipComponent”编制索引,将按多种方式拆分单词,并编制索引变化,例如“Audio”、“Clip”、“Component”、“ACC”等。

用户将能够使用mytype:clip搜索属性,而无需使用audio开头。

using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEditor.Search;
using UnityEngine;

static class Example_ObjectIndexer_IndexPropertyComponents
{
    [CustomObjectIndexer(typeof(MonoScript), version = 1)]
    internal static void IndexMonoScriptClassType(CustomObjectIndexerTarget context, ObjectIndexer indexer)
    {
        if (!(context.target is MonoScript script))
            return;

        var klass = script.GetClass();
        if (klass == null)
            return;
        indexer.IndexPropertyComponents(context.documentIndex, "class", klass.Name);
    }

    [MenuItem("Examples/ObjectIndexer/IndexPropertyComponents")]
    public static void Run()
    {
        void PrintResults(IEnumerable<SearchItem> items) => Debug.Log(string.Join(", ", items.Select(r => r.id)));

        var context = SearchService.CreateContext("asset", "a:examples class:property");
        context.asyncItemReceived += (context, items) => PrintResults(items);

        PrintResults(SearchService.GetItems(context));
    }
}

此示例假设您使用类似于此索引对 MonoScript 进行了编制索引

{
    "name": "examples",
    "type": "asset",
    "roots": [],
    "includes": [
        ".cs"
    ],
    "excludes": [
        "Temp/",
        "External/"
    ],
    "options": {
        "disabled": false,
        "types": true,
        "properties": true,
        "extended": false,
        "dependencies": false
    },
    "baseScore": 100
}