UnityGame/Library/PackageCache/com.unity.ugui/Editor/UGUI/UI/SelfControllerEditor.cs

39 lines
1.5 KiB
C#
Raw Normal View History

2024-10-27 10:53:47 +03:00
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);
}
}
}