first commit
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
using UnityEngine;
|
||||
using UnityEditor.AnimatedValues;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace UnityEditor.UI
|
||||
{
|
||||
[CustomEditor(typeof(AspectRatioFitter), true)]
|
||||
[CanEditMultipleObjects]
|
||||
/// <summary>
|
||||
/// Custom Editor for the AspectRatioFitter component.
|
||||
/// Extend this class to write a custom editor for a component derived from AspectRatioFitter.
|
||||
/// </summary>
|
||||
public class AspectRatioFitterEditor : SelfControllerEditor
|
||||
{
|
||||
SerializedProperty m_AspectMode;
|
||||
SerializedProperty m_AspectRatio;
|
||||
|
||||
|
||||
AnimBool m_ModeBool;
|
||||
private AspectRatioFitter aspectRatioFitter;
|
||||
|
||||
protected virtual void OnEnable()
|
||||
{
|
||||
m_AspectMode = serializedObject.FindProperty("m_AspectMode");
|
||||
m_AspectRatio = serializedObject.FindProperty("m_AspectRatio");
|
||||
aspectRatioFitter = target as AspectRatioFitter;
|
||||
|
||||
m_ModeBool = new AnimBool(m_AspectMode.intValue != 0);
|
||||
m_ModeBool.valueChanged.AddListener(Repaint);
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
EditorGUILayout.PropertyField(m_AspectMode);
|
||||
|
||||
m_ModeBool.target = m_AspectMode.intValue != 0;
|
||||
|
||||
if (EditorGUILayout.BeginFadeGroup(m_ModeBool.faded))
|
||||
EditorGUILayout.PropertyField(m_AspectRatio);
|
||||
EditorGUILayout.EndFadeGroup();
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
|
||||
if (aspectRatioFitter)
|
||||
{
|
||||
if (!aspectRatioFitter.IsAspectModeValid())
|
||||
ShowNoParentWarning();
|
||||
if (!aspectRatioFitter.IsComponentValidOnObject())
|
||||
ShowCanvasRenderModeInvalidWarning();
|
||||
}
|
||||
|
||||
base.OnInspectorGUI();
|
||||
}
|
||||
|
||||
protected virtual void OnDisable()
|
||||
{
|
||||
aspectRatioFitter = null;
|
||||
m_ModeBool.valueChanged.RemoveListener(Repaint);
|
||||
}
|
||||
|
||||
private static void ShowNoParentWarning()
|
||||
{
|
||||
var text = L10n.Tr("You cannot use this Aspect Mode because this Component's GameObject does not have a parent object.");
|
||||
EditorGUILayout.HelpBox(text, MessageType.Warning, true);
|
||||
}
|
||||
|
||||
private static void ShowCanvasRenderModeInvalidWarning()
|
||||
{
|
||||
var text = L10n.Tr("You cannot use this Aspect Mode because this Component is attached to a Canvas with a fixed width and height.");
|
||||
EditorGUILayout.HelpBox(text, MessageType.Warning, true);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user