EditorUtilities.cs 737 B

12345678910111213141516171819202122
  1. using UnityEditor;
  2. using System.Reflection;
  3. namespace AssetBank.Editor.SceneSchema.Internal
  4. {
  5. public static class EditorUtilities
  6. {
  7. public static int GetLocalFileID(UnityEngine.Object obj)
  8. {
  9. if (obj == null) return 0;
  10. var inspectorModeInfo =
  11. typeof(SerializedObject).GetProperty("inspectorMode", BindingFlags.NonPublic | BindingFlags.Instance);
  12. var serializedObject = new SerializedObject(obj);
  13. if (inspectorModeInfo != null) inspectorModeInfo.SetValue(serializedObject, InspectorMode.Debug, null);
  14. var localIdProp = serializedObject.FindProperty("m_LocalIdentfierInFile");
  15. return localIdProp.intValue;
  16. }
  17. }
  18. }