39 lines
1.5 KiB
C#
39 lines
1.5 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace UnityEditor.UI
|
|
{
|
|
/// <summary>
|
|
/// Base class for custom editors that are for components that implement the SelfControllerEditor interface.
|
|
/// </summary>
|
|
public class SelfControllerEditor : Editor
|
|
{
|
|
static string s_Warning = "Parent has a type of layout group component. A child of a layout group should not have a {0} component, since it should be driven by the layout group.";
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
bool anyHaveLayoutParent = false;
|
|
for (int i = 0; i < targets.Length; i++)
|
|
{
|
|
Component comp = (targets[i] as Component);
|
|
ILayoutIgnorer ignorer = comp.GetComponent(typeof(ILayoutIgnorer)) as ILayoutIgnorer;
|
|
if (ignorer != null && ignorer.ignoreLayout)
|
|
continue;
|
|
|
|
RectTransform parent = comp.transform.parent as RectTransform;
|
|
if (parent != null)
|
|
{
|
|
Behaviour layoutGroup = parent.GetComponent(typeof(ILayoutGroup)) as Behaviour;
|
|
if (layoutGroup != null && layoutGroup.enabled)
|
|
{
|
|
anyHaveLayoutParent = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (anyHaveLayoutParent)
|
|
EditorGUILayout.HelpBox(string.Format(s_Warning, ObjectNames.NicifyVariableName(target.GetType().Name)), MessageType.Warning);
|
|
}
|
|
}
|
|
}
|