public DependencyObject GetEditor(Asset asset) { DependencyObject editor = null; if (asset is ImageAsset imageAsset) { editor = new ImageAssetEditor { Asset = imageAsset }; } else if (asset is SpriteWrapper spriteWrapper) { editor = new SpriteWrapperEditor { ImageAsset = spriteWrapper.ImageAsset, SpriteWrapper = spriteWrapper }; } else if (asset is SpriteAnimationAsset spriteAnimation) { editor = new SpriteAnimationAssetEditor { Asset = spriteAnimation }; } else if (asset is FontAsset fontAsset) { editor = new FontAssetEditor { Asset = fontAsset }; } return(editor); }
public override void OnInspectorGUI() { serializedObject.Update(); BMFontMultText fontText = target as BMFontMultText; EditorGUILayout.Space(); int removeKey = -1; List <FontData> fontDataList = fontText.fontDataList; for (int i = 0; i < fontDataList.Count; i++) { EditorGUILayout.BeginVertical((GUIStyle)"SelectionRect"); EditorGUILayout.BeginHorizontal(); bool status = FontAssetEditor.DrawTextToggle(string.Format("序列:{0}", i + 1)); if (GUILayout.Button("", (GUIStyle)"OL Minus", GUILayout.Width(20))) { removeKey = i; } EditorGUILayout.EndHorizontal(); if (status) { fontDataList[i].text = EditorGUILayout.TextArea(fontDataList[i].m_Text, GUILayout.Height(50)); int index = 0; if (fontText.m_FontGroups.Contains(fontDataList[i].group)) { index = fontText.m_FontGroups.IndexOf(fontDataList[i].group); } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUIUtility.labelWidth = 50; index = EditorGUILayout.Popup("Group", index, fontText.m_FontGroups.ToArray(), GUILayout.Width(200)); EditorGUILayout.Space(); EditorGUIUtility.labelWidth = 50; fontDataList[i].offest = EditorGUILayout.Vector2Field("Offest", fontDataList[i].offest, GUILayout.Width(200)); EditorGUILayout.EndHorizontal(); if (fontText.m_FontGroups.Count > selectGroup) { fontDataList[i].group = fontText.m_FontGroups[index]; } } EditorGUILayout.Space(); EditorGUILayout.EndVertical(); EditorGUILayout.Space(); } if (removeKey != -1 && fontDataList.Count > removeKey) { fontDataList.RemoveAt(removeKey); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("添 加")) { fontText.AddFontGroup(); } if (GUILayout.Button("删 除")) { if (fontDataList.Count > 0) { fontDataList.RemoveAt(fontDataList.Count - 1); } } EditorGUILayout.EndHorizontal(); if (GUI.changed) { fontText.SetAllDirty(); EditorUtility.SetDirty(target); GUI.changed = false; } EditorGUILayout.Space(); EditorGUILayout.PropertyField(m_Color); EditorGUILayout.PropertyField(m_Material); EditorGUILayout.PropertyField(m_RaycastTarget); EditorGUILayout.PropertyField(m_FontAsset); EditorGUILayout.PropertyField(m_Gap); serializedObject.ApplyModifiedProperties(); }