123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- public class ListHelper
- {
- public enum Order
- {
- ASC,
- DESC
- }
- public static void FillList<T>(Transform container, List<T> list, ItemRenderer itemRenderer, int limit = int.MaxValue, Order order = Order.ASC)
- {
- int index = 0;
- if(list != null)
- {
- for(int i=0; i<list.Count; i++)
- {
- if (i < container.childCount) {
- ItemRenderer item = container.GetChild (i).GetComponent<ItemRenderer> ();
- item.gameObject.SetActive (true);
- item.data = list [i];
- if (order == Order.DESC)
- item.transform.SetAsFirstSibling ();
- } else {
- AddToList<T> (container, list [i], itemRenderer, limit, order);
- }
- index++;
- }
- }
- for(int i=index; i < container.childCount; i++)
- {
- container.GetChild (i).gameObject.SetActive (false);
- }
- }
- public static void AddToList<T>(Transform container, T data, ItemRenderer itemRenderer, int limit = int.MaxValue, Order order = Order.ASC)
- {
- ItemRenderer item = null;
- if (container.childCount >= limit) {
- if (order == Order.ASC)
- item = container.GetChild (0).GetComponent<ItemRenderer> ();
- else
- item = container.GetChild (container.childCount - 1).GetComponent<ItemRenderer> ();
- } else {
- item = GameObject.Instantiate<GameObject> (itemRenderer.gameObject).GetComponent<ItemRenderer> ();
- PopUpManager.AddToMainCanvas (item.gameObject, container);
- }
- item.gameObject.SetActive (true);
- if (order == Order.ASC)
- item.transform.SetAsLastSibling ();
- else
- item.transform.SetAsFirstSibling ();
- item.data = data;
- }
- public static void AddToScrollChatList<T>(Transform container, T data, ItemRenderer itemRenderer, int limit = int.MaxValue)
- {
- ItemRenderer item = container.GetChild (0).GetComponent<ItemRenderer> ();
- if (!item.gameObject.activeSelf) {
- item.transform.SetAsLastSibling ();
- } else {
- item = GameObject.Instantiate<GameObject> (itemRenderer.gameObject).GetComponent<ItemRenderer> ();
- PopUpManager.AddToMainCanvas (item.gameObject, container);
- }
- item.gameObject.SetActive (true);
- item.data = data;
- }
- public static void Remove<T>(Transform container, T data)
- {
- if (data == null)
- return;
- for(int i=0; i<container.childCount; i++)
- {
- ItemRenderer item = container.GetChild(i).GetComponent<ItemRenderer>();
- if(item.data != null && item.data.Equals(data))
- {
- item.transform.SetAsLastSibling ();
- item.gameObject.SetActive (false);
- return;
- }
- }
- }
- public static void HideAll(Transform container)
- {
- for(int i=0; i < container.childCount; i++)
- {
- container.GetChild (i).gameObject.SetActive (false);
- }
- }
- }
|