#if UNITY_EDITOR using UnityEditor; using UnityEngine; using UnityEngine.UI; namespace AdaptUI { [CustomEditor(typeof(UIFontSizeAdapter))] public class UIFontSizeAdapterEditor : Editor { public override void OnInspectorGUI() { var script = (UIFontSizeAdapter)target; var text = script.GetComponent(); EditorGUILayout.LabelField("字体适配器", EditorStyles.boldLabel); DrawFontEditor(script, "默认字体大小", ref script.defaultFontSize, text, false); DrawFontEditor(script, "iPhone 字体大小", ref script.iPhoneFontSize, text, true); DrawFontEditor(script, "iPad 字体大小", ref script.iPadFontSize, text, true); EditorGUILayout.Space(); if (GUILayout.Button("自动字体适配")) { script.ApplyFontSize(); } } private void DrawFontEditor(UIFontSizeAdapter script, string title, ref FontSizeData data, Text text, bool allowGet) { EditorGUILayout.LabelField(title, EditorStyles.boldLabel); EditorGUI.indentLevel++; data.fontSize = EditorGUILayout.IntField("字体大小", data.fontSize); if (GUILayout.Button("应用到 Text 组件")) { text.fontSize = data.fontSize; Undo.RecordObject(script, "Apply Font Size"); EditorUtility.SetDirty(script); } if (allowGet && GUILayout.Button("获取当前字体大小")) { data.fontSize = text.fontSize; Undo.RecordObject(script, "Get Current Font Size"); EditorUtility.SetDirty(script); } EditorGUI.indentLevel--; EditorGUILayout.Space(); } } } #endif