| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #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<Text>();
- 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
|