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

ManagedReferenceUtility.SetManagedReferenceIdForObject

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static bool SetManagedReferenceIdForObject(Object obj, object scriptObj, long refId);

参数

hostObj 支持 SerializeReference 的“宿主”对象。例如,MonoBehaviourScriptableObject
refObj 将为其分配引用 ID 的 C# 对象。
refId 0 到 Int64.MaxValue 之间的一个正数。此托管引用 ID 不能被同一宿主对象上的其他对象使用。您可以在不同的宿主上重复使用相同的托管引用 ID。

返回值

bool 如果 ID 成功设置则返回 true,否则返回 false。

描述

将托管引用 ID 分配给使用 SerializeReference 在指定宿主上引用的对象。

在正常使用情况下,无需使用此方法。默认情况下,Unity 编辑器在对象首次序列化时会自动为其生成唯一的 ID。

如果使用此方法,则应在创建引用对象后且在引用它的宿主对象的下次序列化之前调用它。如果在宿主对象序列化时未引用该对象,则 Unity 会修剪该对象并丢弃其分配的 ID。如果对象直接分配给宿主对象的至少一个字段,或者通过其他引用对象的字段间接引用,则该对象被“引用”。

分配后,只要对象被宿主引用,托管引用 ID 就会作为对象的永久本地标识符保留。即使宿主对象被卸载和重新加载,此标识符也会保留。

其他资源:GetManagedReferenceIdForObjectGetManagedReferenceSerializeReferenceSerializedProperty.managedReferenceId