using System; using System.Collections.Generic; using UnityEngine; using UnityEditor; using qtools.qhierarchy.pcomponent.pbase; using qtools.qhierarchy.phierarchy; using qtools.qhierarchy.phelper; using qtools.qhierarchy.pdata; namespace qtools.qhierarchy.pcomponent { public class QChildrenCountComponent: QBaseComponent { // PRIVATE private Color backgroundColor; private GUIStyle labelStyle; private int childrenCount; // CONSTRUCTOR public QChildrenCountComponent () { backgroundColor = QResources.getInstance().getColor(QColor.Background); labelStyle = new GUIStyle(); labelStyle.normal.textColor = QResources.getInstance().getColor(QColor.Gray); labelStyle.fontSize = 9; labelStyle.clipping = TextClipping.Clip; labelStyle.alignment = TextAnchor.MiddleRight; QSettings.getInstance().addEventListener(QSetting.ShowChildrenCountComponent , settingsChanged); QSettings.getInstance().addEventListener(QSetting.ShowChildrenCountComponentDuringPlayMode, settingsChanged); settingsChanged(); } // PRIVATE private void settingsChanged() { enabled = QSettings.getInstance().get(QSetting.ShowChildrenCountComponent); showComponentDuringPlayMode = QSettings.getInstance().get(QSetting.ShowChildrenCountComponentDuringPlayMode); } // DRAW public override void layout(GameObject gameObject, QObjectList objectList, ref Rect rect) { childrenCount = gameObject.transform.childCount; rect.x -= 22; rect.width = 22; } public override void draw(GameObject gameObject, QObjectList objectList, Rect selectionRect, Rect curRect) { EditorGUI.DrawRect(curRect, backgroundColor); curRect.x -= 2; if (childrenCount > 0) GUI.Label(curRect, childrenCount.ToString(), labelStyle); } } }