EntitySerializer.cs 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. using System;
  2. using UnityEditor;
  3. using UnityEngine;
  4. namespace ET
  5. {
  6. [CustomEditor(typeof(GameObject))] // 指定要修改的对象类型为 GameObject(Prefab)
  7. public class MyPrefabEditor : Editor
  8. {
  9. [MenuItem("Assets/Edit Entity")] // 创建一个右键菜单项
  10. private static void SaveToEntity()
  11. {
  12. // 获取当前选中的 Prefab
  13. UnityEngine.Object[] selectedObjects = Selection.GetFiltered<UnityEngine.Object>(SelectionMode.Deep);
  14. foreach (UnityEngine.Object obj in selectedObjects)
  15. {
  16. if (!AssetDatabase.Contains(obj))
  17. {
  18. continue; // 确保只处理 Asset 文件而不是场景物体等其他内容
  19. }
  20. string path = AssetDatabase.GetAssetPath(obj); // 获取 Prefab 路径
  21. Type prefabType = PrefabUtility.GetCorrespondingObjectFromOriginalSource(obj).GetType(); // 获取原始源的类型
  22. // 根据需求进行操作,这里仅打印信息
  23. Debug.Log($"Selected Prefab: {path}, Type: {prefabType}");
  24. }
  25. }
  26. }
  27. }