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

IPropertyDatabaseView.InvalidateMask

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public void InvalidateMask(ulong documentKeyMask);

参数

documentKeyMask 文档键掩码。

描述

使与文档键掩码匹配的多个文档中存储的所有属性失效。

此操作比简单的 IPropertyDatabaseView.Invalidate 慢,因为我们无法依赖二分查找来查找与掩码匹配的所有键。

using (var view = propertyDatabase.GetView())
{
    // Store properties of multiple documents.
    for (ulong i = 0; i < 10; ++i)
    {
        for (var j = 0; j < 10; ++j)
            view.Store(i, view.CreatePropertyHash($"prop{j}"), $"value{j}");
    }

    // Invalidate all documents that match any set bits of the mask.
    ulong invalidatedDocumentMask = 2;
    view.InvalidateMask(invalidatedDocumentMask);

    // The invalidated documents can no longer be retrieved.
    for (ulong i = 0; i < 10; ++i)
    {
        if ((i & invalidatedDocumentMask) == 0)
            continue;
        if (view.TryLoad(i, out IEnumerable<object> invalidatedDocumentValues))
            Assert.Fail("TryLoad should have failed to retrieve the invalidated document values.");
    }
}