38 lines
1.5 KiB
38 lines
1.5 KiB
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); |
|
} |
|
} |
|
}
|
|
|