add MetaIDAttribute

This commit is contained in:
Mikhail 2024-09-16 19:30:37 +08:00
parent c12fe06b2d
commit 2410f36e7e
3 changed files with 73 additions and 47 deletions

View File

@ -32,16 +32,16 @@ namespace DCFApixels.DragonECS.Unity.Docs
Array.Sort(array);
return new DragonDocs(array);
}
private static List<Type> GetTypes()
{
Type metaAttributeType = typeof(EcsMetaAttribute);
Type memberType = typeof(IEcsMember);
List<Type> result = new List<Type>(512);
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
foreach (var type in assembly.GetTypes())
{
if ((type.IsInterface == false && type.IsAbstract == false && memberType.IsAssignableFrom(type)) || Attribute.GetCustomAttributes(type, metaAttributeType, false).Length > 1)
if (TypeMeta.IsHasMeta(type))
{
result.Add(type);
}

View File

@ -25,6 +25,8 @@ namespace DCFApixels.DragonECS.Unity.Docs
[DataMember, SerializeField] internal string _group = string.Empty;
[DataMember, SerializeField] internal string[] _tags = Array.Empty<string>();
[DataMember, SerializeField] internal string _metaID = string.Empty;
[DataMember, SerializeField] internal bool _isHidden = false;
@ -72,6 +74,10 @@ namespace DCFApixels.DragonECS.Unity.Docs
{
get { return _tags; }
}
public string MetaID
{
get { return _metaID; }
}
public bool IsHidden
{
get { return _isHidden; }
@ -107,6 +113,8 @@ namespace DCFApixels.DragonECS.Unity.Docs
_tags[i] = meta.Tags[i];
}
_metaID = meta.MetaID;
_isHidden = meta.IsHidden;
}

View File

@ -246,10 +246,13 @@ namespace DCFApixels.DragonECS.Unity.Docs.Editors
Color alphaPanelColor = panelColor;
alphaPanelColor.a = EscEditorConsts.COMPONENT_DRAWER_ALPHA;
GUILayout.BeginVertical(UnityEditorUtility.GetStyle(alphaPanelColor));
using (EcsGUI.Layout.BeginVertical(UnityEditorUtility.GetStyle(alphaPanelColor)))
{
GUILayout.Space(1f);
GUILayout.BeginHorizontal();
//draw title block
using (EcsGUI.Layout.BeginHorizontal())
{
GUILayout.TextArea(IsUseCustomNames ? meta.Name : meta.TypeName, EditorStyles.boldLabel, GUILayout.ExpandWidth(false));
if (meta.TryGetSourceType(out System.Type targetType) && UnityEditorUtility.TryGetScriptAsset(targetType, out MonoScript script))
{
@ -262,8 +265,9 @@ namespace DCFApixels.DragonECS.Unity.Docs.Editors
GUILayout.TextArea(IsUseCustomNames ? meta.TypeName : meta.Name, GUI.skin.label);
}
}
GUILayout.EndHorizontal();
}
//draw description block
Rect lastRect = GUILayoutUtility.GetLastRect();
if (string.IsNullOrEmpty(meta.Description) == false)
{
@ -278,7 +282,8 @@ namespace DCFApixels.DragonECS.Unity.Docs.Editors
GUILayout.TextArea(meta.Description, EditorStyles.wordWrappedLabel);
}
if (meta._tags.Length > 0)
//footer line
if (string.IsNullOrEmpty(meta.MetaID) == false || meta._tags.Length > 0)
{
Rect lineRect = GUILayoutUtility.GetLastRect();
lineRect.yMin = lineRect.yMax;
@ -287,7 +292,21 @@ namespace DCFApixels.DragonECS.Unity.Docs.Editors
EditorGUI.DrawRect(lineRect, new Color(1, 1, 1, 0.12f));
GUILayout.Space(3f);
}
//draw metaid block
if (string.IsNullOrEmpty(meta.MetaID) == false)
{
using (EcsGUI.SetAlpha(0.5f))
{
GUILayout.TextArea(meta.MetaID, EditorStyles.wordWrappedMiniLabel);
}
//EditorGUI.DrawRect(lineRect, new Color(1, 1, 1, 0.12f));
}
//draw tags block
if (meta._tags.Length > 0)
{
var tagsstring = string.Join(',', meta._tags);
using (EcsGUI.SetAlpha(0.5f))
{
@ -295,9 +314,8 @@ namespace DCFApixels.DragonECS.Unity.Docs.Editors
}
}
GUILayout.Space(1f);
GUILayout.EndVertical();
}
}
}