diff --git a/Editor/OverrideUI/XericStyleImageEditor.cs b/Editor/OverrideUI/XericStyleImageEditor.cs
index f345d08..3623cab 100644
--- a/Editor/OverrideUI/XericStyleImageEditor.cs
+++ b/Editor/OverrideUI/XericStyleImageEditor.cs
@@ -1,3 +1,4 @@
+using UnityEngine;
using UnityEditor;
using UnityEditor.UI;
@@ -6,8 +7,9 @@ using XericUI.OverrideUI;
namespace XericUIEditor.OverrideUI
{
///
- /// XericStyleImage 的 Inspector 编辑器——继承 GraphicEditor,
- /// 额外展示颜色、纹理、材质三个 StyleField 和自动刷新开关。
+ /// XericStyleImage 的 Inspector 编辑器——
+ /// 仅显示颜色样式字段 + raycastTarget / raycastPadding / maskable。
+ /// 不展示原始 Color/Sprite/Material(被样式表接管)。
///
[CustomEditor(typeof(XericStyleImage), true)]
[CanEditMultipleObjects]
@@ -16,30 +18,71 @@ namespace XericUIEditor.OverrideUI
private SerializedProperty m_ColorStyleProp;
private SerializedProperty m_TextureStyleProp;
private SerializedProperty m_MaterialStyleProp;
- private SerializedProperty m_AutoRefreshProp;
+ private SerializedProperty m_RaycastTargetProp;
+ private SerializedProperty m_RaycastPaddingProp;
+ private SerializedProperty m_MaskableProp;
+ private SerializedProperty m_ColorProp;
+
+ // 折叠状态
+ private static bool s_ColorFoldout = false;
+ private static bool s_TextureFoldout = false;
+ private static bool s_MaterialFoldout = false;
protected override void OnEnable()
{
base.OnEnable();
- m_ColorStyleProp = serializedObject.FindProperty("m_ColorStyle");
+ m_ColorStyleProp = serializedObject.FindProperty("m_ColorStyle");
m_TextureStyleProp = serializedObject.FindProperty("m_TextureStyle");
m_MaterialStyleProp = serializedObject.FindProperty("m_MaterialStyle");
- m_AutoRefreshProp = serializedObject.FindProperty("m_AutoRefresh");
+ m_RaycastTargetProp = serializedObject.FindProperty("m_RaycastTarget");
+ m_RaycastPaddingProp = serializedObject.FindProperty("m_RaycastPadding");
+ m_MaskableProp = serializedObject.FindProperty("m_Maskable");
+ m_ColorProp = serializedObject.FindProperty("m_Color");
}
public override void OnInspectorGUI()
{
- base.OnInspectorGUI();
- EditorGUILayout.Space();
-
serializedObject.Update();
+ // === 颜色样式(主要展示) ===
EditorGUILayout.LabelField("样式表配置", EditorStyles.boldLabel);
- EditorGUILayout.PropertyField(m_ColorStyleProp);
- EditorGUILayout.PropertyField(m_TextureStyleProp);
- EditorGUILayout.PropertyField(m_MaterialStyleProp);
- EditorGUILayout.PropertyField(m_AutoRefreshProp);
+ EditorGUILayout.Space(2);
+ if (m_ColorStyleProp != null)
+ EditorGUILayout.PropertyField(m_ColorStyleProp, new GUIContent("颜色样式"));
+
+ // 纹理和材质样式折叠(通常不需要改动)
+ s_TextureFoldout = EditorGUILayout.Foldout(s_TextureFoldout, "纹理 / 材质样式(高级)", true);
+ if (s_TextureFoldout)
+ {
+ EditorGUI.indentLevel++;
+ if (m_TextureStyleProp != null)
+ EditorGUILayout.PropertyField(m_TextureStyleProp, new GUIContent("纹理样式"));
+ if (m_MaterialStyleProp != null)
+ EditorGUILayout.PropertyField(m_MaterialStyleProp, new GUIContent("材质样式"));
+ EditorGUI.indentLevel--;
+ }
+
+ EditorGUILayout.Space(8);
+
+ // === 颜色预览(只读) ===
+ if (m_ColorProp != null)
+ {
+ EditorGUI.BeginDisabledGroup(true);
+ EditorGUILayout.PropertyField(m_ColorProp, new GUIContent("颜色(预览)"));
+ EditorGUI.EndDisabledGroup();
+ }
+
+ EditorGUILayout.Space(4);
+
+ // === Raycast 与 Mask ===
+ EditorGUILayout.LabelField("交互", EditorStyles.boldLabel);
+ if (m_RaycastTargetProp != null)
+ EditorGUILayout.PropertyField(m_RaycastTargetProp, new GUIContent("Raycast Target"));
+ if (m_RaycastPaddingProp != null)
+ EditorGUILayout.PropertyField(m_RaycastPaddingProp, new GUIContent("Raycast Padding"));
+ if (m_MaskableProp != null)
+ EditorGUILayout.PropertyField(m_MaskableProp, new GUIContent("Maskable"));
serializedObject.ApplyModifiedProperties();
}
diff --git a/Editor/SuperStyleSheet/StyleFieldDrawer.cs b/Editor/SuperStyleSheet/StyleFieldDrawer.cs
index 888e6db..2d86818 100644
--- a/Editor/SuperStyleSheet/StyleFieldDrawer.cs
+++ b/Editor/SuperStyleSheet/StyleFieldDrawer.cs
@@ -26,6 +26,11 @@ namespace XericUIEditor
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
+ var nsProp = property.FindPropertyRelative("Namespace");
+ var pathProp = property.FindPropertyRelative("StylePath");
+ if (nsProp == null || pathProp == null)
+ return LINE_HEIGHT + PADDING * 2;
+
string key = GetFoldKey(property);
bool expanded = s_FoldoutStates.TryGetValue(key, out bool f) && f;
@@ -37,7 +42,7 @@ namespace XericUIEditor
// 有值才显示值类型行
string ns = GetNamespace(property);
- string path = property.FindPropertyRelative("StylePath").stringValue;
+ string path = pathProp.stringValue;
StyleValue val = StyleManager.GetValue(ns, path);
if (val != null && val.ValueType != null)
rowCount++;
@@ -59,6 +64,12 @@ namespace XericUIEditor
SerializedProperty nsProp = property.FindPropertyRelative("Namespace");
SerializedProperty pathProp = property.FindPropertyRelative("StylePath");
+ if (nsProp == null || pathProp == null)
+ {
+ EditorGUI.LabelField(position, label, "(StyleField 未初始化)");
+ return;
+ }
+
// === 标题行:折叠箭头 + 标签 + 路径下拉 ===
Rect headerRect = new Rect(position.x, position.y + PADDING, position.width, LINE_HEIGHT);
@@ -213,7 +224,8 @@ namespace XericUIEditor
private static string GetNamespace(SerializedProperty property)
{
- string ns = property.FindPropertyRelative("Namespace").stringValue;
+ var nsProp = property.FindPropertyRelative("Namespace");
+ string ns = nsProp?.stringValue;
return string.IsNullOrEmpty(ns) ? "default" : ns;
}
diff --git a/Editor/XTable/XTableEditorOverlay.cs b/Editor/XTable/XTableEditorOverlay.cs
index 27b632a..0a1764a 100644
--- a/Editor/XTable/XTableEditorOverlay.cs
+++ b/Editor/XTable/XTableEditorOverlay.cs
@@ -3,7 +3,7 @@
using UnityEditor;
using UnityEngine;
-
+using XericLibrary.Runtime.MacroLibrary;
using XericUI.XTable.Rendering.Component;
namespace XericUIEditor.XTable
@@ -47,10 +47,10 @@ namespace XericUIEditor.XTable
GameObject selected = Selection.activeGameObject;
if (selected == null) return;
- XericUIActionTable table = selected.GetComponent();
+ var table = selected.GetComponent();
if (table == null) return;
- RectTransform rect = table.GetComponent();
+ var rect = table.RectTransform();
if (rect == null) return;
DrawGridOverlay(table, rect);
diff --git a/Runtime/Core/StyleSheetUI/DefaultXericStyleSheet.xsss b/Runtime/Core/StyleSheetUI/DefaultXericStyleSheet.xsss
index eaed782..960b247 100644
--- a/Runtime/Core/StyleSheetUI/DefaultXericStyleSheet.xsss
+++ b/Runtime/Core/StyleSheetUI/DefaultXericStyleSheet.xsss
@@ -10,4 +10,20 @@ namespace: default
.PressedColor = (0.78,0.78,0.78,1)
.SelectedColor = (0.96,0.96,0.96,1)
.DisabledColor = (0.6,0.6,0.6,0.8)
+}
+
+/toggle/TargetGraphic/ColorTint:UnityEngine.UI.ColorBlock/ {
+.NormalColor = (1,1,1,1)
+.HighlightedColor = (0.96,0.96,0.96,1)
+.PressedColor = (0.78,0.78,0.78,1)
+.SelectedColor = (0.96,0.96,0.96,1)
+.DisabledColor = (0.6,0.6,0.6,0.8)
+}
+
+/image/ColorTint:UnityEngine.UI.ColorBlock/ {
+.NormalColor = (1,1,1,1)
+.HighlightedColor = (0.96,0.96,0.96,1)
+.PressedColor = (0.78,0.78,0.78,1)
+.SelectedColor = (0.96,0.96,0.96,1)
+.DisabledColor = (0.6,0.6,0.6,0.8)
}
\ No newline at end of file
diff --git a/Runtime/XTable/Rendering/Component/XericUIActionTable.cs b/Runtime/XTable/Rendering/Component/XericUIActionTable.cs
index 66af54f..91811b0 100644
--- a/Runtime/XTable/Rendering/Component/XericUIActionTable.cs
+++ b/Runtime/XTable/Rendering/Component/XericUIActionTable.cs
@@ -96,6 +96,8 @@ namespace XericUI.XTable.Rendering.Component
}
}
+ public XTableCellData this[int row, int col] => TableData.GetOrCreateCell(row, col);
+
public float[] RowHeights => m_RowHeights;
public float[] ColWidths => m_ColWidths;
diff --git a/~Samples/Example/.sample.json b/~Samples/Example/.sample.json
deleted file mode 100644
index 3b43eaf..0000000
--- a/~Samples/Example/.sample.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "displayName":"Example Sample",
- "description": "Replace this string with your own description of the sample. Delete the Samples folder if not needed.",
- "createSeparatePackage": false
-}
diff --git a/~Samples/Example/SampleExample.cs b/~Samples/Example/SampleExample.cs
deleted file mode 100644
index adc78c6..0000000
--- a/~Samples/Example/SampleExample.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-// -----------------------------------------------------------------------------
-//
-// Use this sample example C# file to develop samples to guide usage of APIs
-// in your package.
-//
-// -----------------------------------------------------------------------------
-
-namespace Lrss3.Xericuiactionvessel
-{
- ///
- /// Provide a general description of the public class.
- ///
- ///
- /// Packages require XmlDoc documentation for ALL Package APIs.
- /// https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments
- ///
- public class MyPublicSampleExampleClass
- {
- ///
- /// Provide a description of what this public method does.
- ///
- public void CountThingsAndDoStuffAndOutputIt()
- {
- var result = new MyPublicRuntimeExampleClass().CountThingsAndDoStuff(1, 2, false);
- Debug.Log("Call CountThingsAndDoStuffAndOutputIt returns " + result);
- }
- }
-}
\ No newline at end of file