hostObj | 支持 SerializeReference 的“宿主”对象。例如,MonoBehaviour 或 ScriptableObject。 |
refObj | 将为其分配引用 ID 的 C# 对象。 |
refId | 0 到 Int64.MaxValue 之间的一个正数。此托管引用 ID 不能被同一宿主对象上的其他对象使用。您可以在不同的宿主上重复使用相同的托管引用 ID。 |
bool 如果 ID 成功设置则返回 true,否则返回 false。
将托管引用 ID 分配给使用 SerializeReference 在指定宿主上引用的对象。
在正常使用情况下,无需使用此方法。默认情况下,Unity 编辑器在对象首次序列化时会自动为其生成唯一的 ID。
如果使用此方法,则应在创建引用对象后且在引用它的宿主对象的下次序列化之前调用它。如果在宿主对象序列化时未引用该对象,则 Unity 会修剪该对象并丢弃其分配的 ID。如果对象直接分配给宿主对象的至少一个字段,或者通过其他引用对象的字段间接引用,则该对象被“引用”。
分配后,只要对象被宿主引用,托管引用 ID 就会作为对象的永久本地标识符保留。即使宿主对象被卸载和重新加载,此标识符也会保留。
其他资源:GetManagedReferenceIdForObject、GetManagedReference、SerializeReference、SerializedProperty.managedReferenceId。