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

SearchIndexer.Read

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public bool Read(Stream stream, bool checkVersionOnly);

参数

stream 要从中读取索引的流。
checkVersionOnly 如果为 true,则验证索引的版本。

返回值

bool 如果索引版本不受支持,则返回 false。

描述

读取流并从中填充索引。

using System.IO;
using System.Linq;
using UnityEditor;
using UnityEditor.Search;
using UnityEngine;

static class Example_SearchIndexer_Read
{
    [MenuItem("Examples/SearchIndexer/Read")]
    public static void Run()
    {
        var si = new SearchIndexer();
        si.Start();
        si.AddDocument("document 1");
        si.AddDocument("document 2");
        si.Finish(() =>
        {
            File.WriteAllBytes("Temp/Read.index", si.SaveBytes());

            // Stream the index from disk but only check if the stream is valid.
            using (var fileStream = new FileStream("Temp/Read.index", FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                var copyIndex = new SearchIndexer();
                Debug.Assert(copyIndex.Read(fileStream, checkVersionOnly: true));
            }

            // Completely stream the index from disk.
            using (var fileStream = new FileStream("Temp/Read.index", FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                var copyIndex = new SearchIndexer();
                Debug.Assert(copyIndex.Read(fileStream, checkVersionOnly: false));
                Debug.Assert(copyIndex.GetDocument(0).id == "document 1");
            }
        });
    }
}