Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,127 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEditor;
|
||||
|
||||
namespace TMPro.EditorUtilities
|
||||
{
|
||||
|
||||
[CustomEditor(typeof(TextMeshProUGUI), true), CanEditMultipleObjects]
|
||||
public class TMP_EditorPanelUI : TMP_BaseEditorPanel
|
||||
{
|
||||
static readonly GUIContent k_RaycastTargetLabel = new GUIContent("Raycast Target", "Whether the text blocks raycasts from the Graphic Raycaster.");
|
||||
static readonly GUIContent k_MaskableLabel = new GUIContent("Maskable", "Determines if the text object will be affected by UI Mask.");
|
||||
|
||||
SerializedProperty m_RaycastTargetProp;
|
||||
private SerializedProperty m_MaskableProp;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_RaycastTargetProp = serializedObject.FindProperty("m_RaycastTarget");
|
||||
m_MaskableProp = serializedObject.FindProperty("m_Maskable");
|
||||
}
|
||||
|
||||
protected override void DrawExtraSettings()
|
||||
{
|
||||
Rect rect = EditorGUILayout.GetControlRect(false, 24);
|
||||
|
||||
if (GUI.Button(rect, new GUIContent("<b>Extra Settings</b>"), TMP_UIStyleManager.sectionHeader))
|
||||
Foldout.extraSettings = !Foldout.extraSettings;
|
||||
|
||||
GUI.Label(rect, (Foldout.extraSettings ? k_UiStateLabel[0] : k_UiStateLabel[1]), TMP_UIStyleManager.rightLabel);
|
||||
if (Foldout.extraSettings)
|
||||
{
|
||||
//EditorGUI.indentLevel += 1;
|
||||
|
||||
DrawMargins();
|
||||
|
||||
DrawGeometrySorting();
|
||||
|
||||
DrawIsTextObjectScaleStatic();
|
||||
|
||||
DrawRichText();
|
||||
|
||||
DrawRaycastTarget();
|
||||
|
||||
DrawMaskable();
|
||||
|
||||
DrawParsing();
|
||||
|
||||
DrawSpriteAsset();
|
||||
|
||||
DrawStyleSheet();
|
||||
|
||||
DrawKerning();
|
||||
|
||||
DrawPadding();
|
||||
|
||||
//EditorGUI.indentLevel -= 1;
|
||||
}
|
||||
}
|
||||
|
||||
protected void DrawRaycastTarget()
|
||||
{
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUILayout.PropertyField(m_RaycastTargetProp, k_RaycastTargetLabel);
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
// Change needs to propagate to the child sub objects.
|
||||
Graphic[] graphicComponents = m_TextComponent.GetComponentsInChildren<Graphic>();
|
||||
for (int i = 1; i < graphicComponents.Length; i++)
|
||||
graphicComponents[i].raycastTarget = m_RaycastTargetProp.boolValue;
|
||||
|
||||
m_HavePropertiesChanged = true;
|
||||
}
|
||||
}
|
||||
|
||||
protected void DrawMaskable()
|
||||
{
|
||||
if (m_MaskableProp == null)
|
||||
return;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUILayout.PropertyField(m_MaskableProp, k_MaskableLabel);
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_TextComponent.maskable = m_MaskableProp.boolValue;
|
||||
|
||||
// Change needs to propagate to the child sub objects.
|
||||
MaskableGraphic[] maskableGraphics = m_TextComponent.GetComponentsInChildren<MaskableGraphic>();
|
||||
for (int i = 1; i < maskableGraphics.Length; i++)
|
||||
maskableGraphics[i].maskable = m_MaskableProp.boolValue;
|
||||
|
||||
m_HavePropertiesChanged = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Method to handle multi object selection
|
||||
protected override bool IsMixSelectionTypes()
|
||||
{
|
||||
GameObject[] objects = Selection.gameObjects;
|
||||
if (objects.Length > 1)
|
||||
{
|
||||
for (int i = 0; i < objects.Length; i++)
|
||||
{
|
||||
if (objects[i].GetComponent<TextMeshProUGUI>() == null)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
protected override void OnUndoRedo()
|
||||
{
|
||||
int undoEventId = Undo.GetCurrentGroup();
|
||||
int lastUndoEventId = s_EventId;
|
||||
|
||||
if (undoEventId != lastUndoEventId)
|
||||
{
|
||||
for (int i = 0; i < targets.Length; i++)
|
||||
{
|
||||
//Debug.Log("Undo & Redo Performed detected in Editor Panel. Event ID:" + Undo.GetCurrentGroup());
|
||||
TMPro_EventManager.ON_TEXTMESHPRO_UGUI_PROPERTY_CHANGED(true, targets[i] as TextMeshProUGUI);
|
||||
s_EventId = undoEventId;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue