using UnityEngine; using System.Collections; using System.Collections.Generic; public static class ExtensionList { public static T Last(this List list, int index) { return list[list.Count - 1 - index]; } public static T Prev(this List list, int index) { return list[(index + list.Count - 1) % list.Count]; } public static T Next(this List list, int index) { return list[(index + 1) % list.Count]; } public static T Random(this List list, bool remove = false) { if (list.Count == 0) { Debug.Log("Count is 0"); } int index = UnityEngine.Random.Range(0, list.Count); if (remove) { T result = list[index]; list.RemoveAt(index); return result; } else { return list[index]; } } public static bool Valid(this List list) { if (list == null || list.Count == 0) { return false; } else { return true; } } public static bool UniqueAdd(this List list, T obj) { if (list.Contains(obj) == false) { list.Add(obj); return true; } else { return false; } } public static void LastRemoveAt(this List list, int index) { list.RemoveAt(list.Count - 1 - index); } }