using System.Collections.Generic; using UnityEngine; namespace RoR2; public static class GetComponentsCache { private static readonly Stack> buffers = new Stack>(); public static void ReturnBuffer(List buffer) { buffer.Clear(); buffers.Push(buffer); } private static List RequestBuffer() { if (buffers.Count == 0) { return new List(); } return buffers.Pop(); } public static List GetGameObjectComponents(GameObject gameObject) { List list = RequestBuffer(); gameObject.GetComponents(list); return list; } public static List GetGameObjectComponentsInChildren(GameObject gameObject, bool includeInactive = false) { List list = RequestBuffer(); gameObject.GetComponentsInChildren(includeInactive, list); return list; } }