mirror of
https://github.com/DCFApixels/DragonECS-Unity.git
synced 2025-09-17 17:34:34 +08:00
Update RuntimeComponentsDrawer.cs
This commit is contained in:
parent
09f7c6103d
commit
760c789acb
@ -66,6 +66,7 @@ namespace DCFApixels.DragonECS.Unity.Editors.X
|
|||||||
|
|
||||||
public readonly bool IsUnityObjectType;
|
public readonly bool IsUnityObjectType;
|
||||||
public readonly bool IsUnitySerializable;
|
public readonly bool IsUnitySerializable;
|
||||||
|
public readonly bool IsCompositeType;
|
||||||
public readonly bool IsUnmanaged;
|
public readonly bool IsUnmanaged;
|
||||||
|
|
||||||
public readonly FieldInfoData[] Fields;
|
public readonly FieldInfoData[] Fields;
|
||||||
@ -90,7 +91,12 @@ namespace DCFApixels.DragonECS.Unity.Editors.X
|
|||||||
//type.IsPrimitive ||
|
//type.IsPrimitive ||
|
||||||
//type == typeof(string) ||
|
//type == typeof(string) ||
|
||||||
//type.IsEnum ||
|
//type.IsEnum ||
|
||||||
(!type.IsGenericType && type.IsSerializable && type.HasAttribute<System.SerializableAttribute>());
|
(!type.IsGenericType && type.HasAttribute<System.SerializableAttribute>() && type.IsArray == false);
|
||||||
|
|
||||||
|
IsCompositeType =
|
||||||
|
type.IsPrimitive == false &&
|
||||||
|
type.IsArray == false &&
|
||||||
|
type != typeof(string);
|
||||||
|
|
||||||
if (type == typeof(void)) { return; }
|
if (type == typeof(void)) { return; }
|
||||||
|
|
||||||
@ -379,9 +385,12 @@ namespace DCFApixels.DragonECS.Unity.Editors.X
|
|||||||
bool changed = false;
|
bool changed = false;
|
||||||
|
|
||||||
|
|
||||||
if (cache.IsUnitySerializable == false)
|
if (cache.IsUnitySerializable == false && cache.IsCompositeType)
|
||||||
{
|
{
|
||||||
isExpanded = EditorGUILayout.BeginFoldoutHeaderGroup(isExpanded, label, EditorStyles.foldout);
|
var foldoutStyle = EditorStyles.foldout;
|
||||||
|
Rect rect = GUILayoutUtility.GetRect(label, foldoutStyle);
|
||||||
|
rect.xMin += EcsGUI.Indent;
|
||||||
|
isExpanded = EditorGUI.BeginFoldoutHeaderGroup(rect, isExpanded, label, foldoutStyle, null, null);
|
||||||
EditorGUILayout.EndFoldoutHeaderGroup();
|
EditorGUILayout.EndFoldoutHeaderGroup();
|
||||||
|
|
||||||
if (isExpanded)
|
if (isExpanded)
|
||||||
@ -401,8 +410,8 @@ namespace DCFApixels.DragonECS.Unity.Editors.X
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -437,22 +446,21 @@ namespace DCFApixels.DragonECS.Unity.Editors.X
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
EditorGUI.BeginChangeCheck();
|
EditorGUI.BeginChangeCheck();
|
||||||
|
|
||||||
RefEditorWrapper wrapper = cache.GetWrapper(_runtimeComponentsDepth);
|
RefEditorWrapper wrapper = cache.GetWrapper(_runtimeComponentsDepth);
|
||||||
|
|
||||||
wrapper.data = data;
|
wrapper.data = data;
|
||||||
wrapper.SO.Update();
|
|
||||||
|
|
||||||
wrapper.IsExpanded = isExpanded;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (fieldInfoData.IsPassToUnitySerialize)
|
if (cache.IsCompositeType && fieldInfoData.IsPassToUnitySerialize)
|
||||||
{
|
{
|
||||||
|
wrapper.SO.Update();
|
||||||
|
wrapper.IsExpanded = isExpanded;
|
||||||
EditorGUILayout.PropertyField(wrapper.Property, label, true);
|
EditorGUILayout.PropertyField(wrapper.Property, label, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EditorGUILayout.LabelField(label, " ");
|
//EcsGUI.
|
||||||
|
EditorGUILayout.LabelField(label);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (ArgumentException)
|
catch (ArgumentException)
|
||||||
|
Loading…
Reference in New Issue
Block a user