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

PropertyDatabase.InvalidateMask

提出更改建议

成功!

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

关闭

提交失败

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

关闭

取消

声明

public void InvalidateMask(ulong documentKeyMask);

参数

documentKeyMask 文档密钥掩码。

描述

使从与文档密钥掩码相符的多个文档存储的所有属性失效。

此操作比更简单的 PropertyDatabase.Invalidate 慢,因为我们不能依赖二分查找来查找与掩码相符的所有键。

// Store properties of multiple documents.
for (ulong i = 0; i < 10; ++i)
{
    for (var j = 0; j < 10; ++j)
        propertyDatabase.Store(i, PropertyDatabase.CreatePropertyHash($"prop{j}"), $"value{j}");
}
// Invalidate all documents that match any set bits of the mask.
ulong invalidatedDocumentMask = 2;
propertyDatabase.InvalidateMask(invalidatedDocumentMask);

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