Unity 6.3
0 онлайн 33 гостей 3 в системе
Вход

MonoBehaviour.OnTransformChildrenChanged()

Описание

Вызываются, когда список прямых детей GameObject's Transform изменения.

Следующие изменения направляют дочерей GameObject на вызов OnTransformChildrenChanged:

  • Добавление нового дочернего объекта в GameObject's Transform.
  • Удаление дочернего объекта.
  • Передача ребенка другому родителю.
  • Изменение порядка прямых детей.

Не имеет значения, выполняются ли эти действия в окне Hierarchy или из кода с APIs, например, Transform.SetParent, Object.Destroyили Transform.SetSiblingIndex.

OnTransformChildrenChanged запускается только при изменениях в непосредственных (прямых) дочерних объектах Transform. Изменения в внуках или более глубоких потомках не вызывают этот метод на родительском объекте.

OnTransformChildrenChanged вызывается во время выполнения, когда изменяются прямые дочерние объекты GameObject. Он также может быть вызван в режиме редактирования, если скрипты используют ExecuteInEditMode или ExecuteAlways.

Используйте этот обратный вызов, чтобы отреагировать на изменения в непосредственной дочерней иерархии GameObject, такие как обновление элементов UI, управление списками дочерних объектов или обновление кэшированных ссылок.

Дополнительные ресурсы: MonoBehaviour.OnTransformParentChanged.

// Attach this script to any GameObject (for example, an empty "Parent" object).
// Assign a UI Text component to the countText field in the Inspector.
// Add or remove children from the GameObject at runtime or in the Editor.

using UnityEngine; using UnityEngine.UI;

public class ChildrenCounter : MonoBehaviour { public Text countText;

private void Start() { UpdateChildrenCount(); }

// Called by Unity when a child is added or removed private void OnTransformChildrenChanged() { UpdateChildrenCount(); }

private void UpdateChildrenCount() { int childrenCount = transform.childCount; if (countText != null) { countText.text = $"Children: {childrenCount}"; } } }