using Sirenix.OdinInspector; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; using System.Linq; namespace Beyond { public class SubmenuElementsContainer : MonoBehaviour { public GameObject parentObject; public List interactableCanvas = new List(); [Button] public void StoreCanvasGroup(int maxDepth) { interactableCanvas = new List(); AddCanvasGroupFromChildren(transform, maxDepth); } private void AddCanvasGroupFromChildren(Transform parentTransform, int maxDepth) { List childTransforms = new List(); CanvasGroup canvaToAdd = new CanvasGroup(); for (int i = 0; i < parentTransform.childCount; i++) { Transform childTransform = parentTransform.GetChild(i); childTransforms.Add(childTransform); canvaToAdd = null; canvaToAdd = childTransform.gameObject.GetComponent(); if (canvaToAdd) { interactableCanvas.Add(canvaToAdd); } } if (maxDepth > 0) { maxDepth--; childTransforms.ForEach(child => AddCanvasGroupFromChildren(child, maxDepth)); } } } }