Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


managedReferenceId

Id associated with a managed reference.
Read time 1 minuteLast updated 5 days ago

Definition

  • Type: Property
  • Namespace: UnityEditor
  • Assembly: UnityEditor
public long managedReferenceId { get; set; }

Remarks

Available when SerializedProperty.propertyType is SerializedPropertyType.ManagedReference. If the reference is null then the Id is RefIdNull.

Examples

using System;using UnityEditor;using UnityEngine;public class SerializedPropertyManagedReferenceIdExample : ScriptableObject{ [Serializable] public class Item { public int m_data = 1; } [SerializeReference] public Item m_Item; [SerializeReference] public Item m_Item2; [MenuItem("Example/SerializedProperty ManagedReferenceId Example")] static void TestMethod1() { var scriptableObject = ScriptableObject.CreateInstance<SerializedPropertyManagedReferenceIdExample>(); scriptableObject.m_Item = new Item(); using (var serializedObject = new SerializedObject(scriptableObject)) { var itemProperty = serializedObject.FindProperty("m_Item"); var item2Property = serializedObject.FindProperty("m_Item2"); // Set m_Item2 to point to the same object as m_Item // Note: managedReferenceValue could also be used here, for the same result item2Property.managedReferenceId = itemProperty.managedReferenceId; serializedObject.ApplyModifiedProperties(); } // Check the results back on the live object //Will print "Value of m_Item2.m_data: 1" Debug.Log("Value of m_Item2.m_data: " + scriptableObject.m_Item2.m_data); // Prove that both fields point to the same object scriptableObject.m_Item.m_data = 2; //Will print "Value of m_Item2.m_data: 2" Debug.Log("Value of m_Item2.m_data: " + scriptableObject.m_Item2.m_data); }}