void Allocate() { T[] newArray; if (array == null) { newArray = new T[32]; } else { newArray = new T[Mathf.Max(array.Length << 1, 32)]; } if (array != null && size > 0) { array.CopyTo(newArray, 0); } array = newArray; }