/// <inheritdoc /> public T[] CreateValueArray(int length, T initialValue) { T[] array; bool alreadyInitialised = false; bool initialIsDefault = initialValue.Equals(default(T)); if (!BufferSessions || (array = _InternalGetBufferedArray(length)) == null) { array = new T[length]; alreadyInitialised = initialIsDefault; } if (BufferSessions) { _InternalAddToCurrentSession(array); } if (!alreadyInitialised) { if (initialIsDefault) { Array.Clear(array, 0, array.Length); } else { if (array.Length <= 8) { for (var i = 0; i < array.Length; i++) { array[i] = initialValue; } } else { array[0] = initialValue; array[1] = initialValue; array[2] = initialValue; array[3] = initialValue; array[4] = initialValue; array[5] = initialValue; array[6] = initialValue; array[7] = initialValue; int arrayToFillHalfLength = array.Length / 2; int copyLength; for (copyLength = 8; copyLength < arrayToFillHalfLength; copyLength <<= 1) { Array.Copy(array, 0, array, copyLength, copyLength); } Array.Copy(array, 0, array, copyLength, array.Length - copyLength); } } } OnValueArrayCreated(array, initialValue); return(array); }
public void Link() { var hits = new RaycastHit2D[5]; var hitPositions = LevelGenerator.GetRayXPositions(gameObject); LinkBottom(hits, hitPositions); Array.Clear(hits, 0, hits.Length); LinkTop(hits, hitPositions); }
void Reset() { ClearOverlay(); cities.Clear(); Array.Clear(civilizaitons, 0, civilizaitons.Length); civCount = 0; foreach (GameObject city in cityObjs) { Destroy(city); } cityObjs.Clear(); isStarted = false; }