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

PropertyDatabase.TryLoad

建议更改

成功!

感谢帮助我们提升 Unity 技术文档的质量。尽管我们无法接受所有提交,但我们都会逐一阅读用户建议的每项更改,并会在适用的时候进行更新。

关闭

提交失败

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

关闭

取消

声明

public bool TryLoad(ref Search.PropertyDatabaseRecordKey recordKey, out object value);

参数

recordKey 记录密钥。
value 属性值。

返回值

bool 如果找到且有效为真,否则为假。

说明

加载单个属性,已反序列化到对象中。

// Load the value already deserialized.
var colorRecordKey = PropertyDatabase.CreateRecordKey("path/to/my/asset", "m_Color");
if (!propertyDatabase.TryLoad(colorRecordKey, out object colorObject))
    Assert.Fail("Failed to load color property.");
var color = (Color)colorObject;
Assert.AreEqual(new Color(1, 0, 1), color);

声明

public bool TryLoad(ref Search.PropertyDatabaseRecordKey recordKey, out Search.IPropertyDatabaseRecordValue value);

参数

recordKey 记录密钥。
value 属性记录。

返回值

bool 如果找到且有效为真,否则为假。

说明

加载单个属性,仍保存在记录中。

此方法不会反序列化值。你需要通过调用 PropertyDatabase.GetObjectFromRecordValue 手动执行反序列化。

// Load the record value to do a deserialization at the appropriate time.
var sizeRecordKey = PropertyDatabase.CreateRecordKey("path/to/my/asset", "m_Size");
if (!propertyDatabase.TryLoad(sizeRecordKey, out IPropertyDatabaseRecordValue sizeRecordValue))
    Assert.Fail("Failed to load size property.");
var size = propertyDatabase.GetValueFromRecord<int>(sizeRecordValue);
Assert.AreEqual(42, size);

声明

public bool TryLoad(ulong documentKey, out IEnumerable<object> data);

参数

documentKey 文档密钥。
data 文档属性值。

返回值

bool 如果找到且有效为真,否则为假。

说明

加载文档的所有属性,已反序列化为对象。

// Load all values not associated with a document, already deserialized.
var nullDocumentKey = PropertyDatabase.CreateDocumentKey(null);
if (!propertyDatabase.TryLoad(nullDocumentKey, out IEnumerable<object> noDocumentProperties))
    Assert.Fail("Failed to load properties with no documents.");
Assert.IsNotEmpty(noDocumentProperties);
Assert.AreEqual("myDocs_", noDocumentProperties.First());

声明

public bool TryLoad(ulong documentKey, out IEnumerable<IPropertyDatabaseRecord> records);

参数

documentKey 文档密钥。
records 文档属性记录。

返回值

bool 如果找到且有效为真,否则为假。

说明

加载文档的所有属性,仍保存在记录中。

此方法不会反序列化值。你需要通过调用 PropertyDatabase.GetObjectFromRecordValue 手动执行反序列化。

// Load all values associated with a document, not deserialized.
var myAssetDocumentKey = PropertyDatabase.CreateDocumentKey("path/to/my/asset");
if (!propertyDatabase.TryLoad(myAssetDocumentKey, out IEnumerable<IPropertyDatabaseRecord> myDocumentRecords))
    Assert.Fail("Failed to load records for my asset document.");
var deserializedValues = new Dictionary<PropertyDatabaseRecordKey, object>();
foreach (var myDocumentRecord in myDocumentRecords)
{
    var value = propertyDatabase.GetValueFromRecord<object>(myDocumentRecord.value);
    deserializedValues.Add(myDocumentRecord.key, value);
}
Assert.AreEqual(5, deserializedValues.Count);