UGUI—EditorGUILayout.HelpBox

作者:追风剑情 发布于:2022-10-20 13:27 分类:Unity3d

示例:给资源加描述信息

1111.png

点击【Edit】可对信息进行编辑

2222.png

AssetHelpBox.cs

  1. using UnityEngine;
  2. /// <summary>
  3. /// 显示资源帮助信息
  4. /// </summary>
  5. public class AssetHelpBox : MonoBehaviour
  6. {
  7. [SerializeField]
  8. [HideInInspector]
  9. public string message;
  10. }


AssetHelpBoxInspector.cs

  1. using System.Collections.Generic;
  2. using UnityEditor;
  3. using UnityEngine;
  4. // 将此脚本放到 Editor 目录下
  5. [CustomEditor(typeof(AssetHelpBox))]
  6. public class AssetHelpBoxInspector : Editor
  7. {
  8. protected AssetHelpBox mAsset;
  9. private bool isEditing;
  10.  
  11. protected virtual void OnEnable()
  12. {
  13. mAsset = target as AssetHelpBox;
  14. }
  15.  
  16. public override void OnInspectorGUI()
  17. {
  18. base.OnInspectorGUI();//保留Unity自动生成的Inspector
  19.  
  20. if (isEditing)
  21. {
  22. mAsset.message = GUILayout.TextArea(mAsset.message);
  23. if (GUILayout.Button("OK", GUILayout.Width(50)))
  24. {
  25. isEditing = false;
  26. string path = AssetDatabase.GetAssetPath(mAsset);
  27. List<string> list = new List<string>();
  28. list.Add(path);
  29. AssetDatabase.ForceReserializeAssets(list);
  30. }
  31. }
  32. else
  33. {
  34. string msg = mAsset.message;
  35. if (!string.IsNullOrEmpty(msg))
  36. EditorGUILayout.HelpBox(msg, MessageType.Info);
  37.  
  38. if (GUILayout.Button("Edit", GUILayout.Width(50)))
  39. {
  40. isEditing = true;
  41. }
  42. }
  43. }
  44. }


标签: Unity3d

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号