using System; using System.Collections.Generic; using UnityEngine; public class FacilityDetailsListViewer : MonoBehaviour { public void CreateFacilityDetailsList(int itemCount, Action onCreateItem) where T : FacilityDetailsListViewer.FacilityDetailsUI { this.m_ListViewerFacilityDetails.Show(itemCount, delegate(int index, Transform trans) { onCreateItem(index, trans.gameObject.AddComponent()); }); } public bool IsExistItemList() { NDebug.Assert(this.m_ListViewerFacilityDetails != null, "FacilityDetailsListViewer.cs\nUI項目を並べるコンポーネントがアタッチされていません"); return this.m_ListViewerFacilityDetails.ItemArray != null && this.m_ListViewerFacilityDetails.ItemArray.Length > 0; } public int GetItemCount() { NDebug.Assert(this.m_ListViewerFacilityDetails != null, "FacilityDetailsListViewer.cs\nUI項目を並べるコンポーネントがアタッチされていません"); if (!this.IsExistItemList()) { return 0; } return this.m_ListViewerFacilityDetails.ItemArray.Length; } public T GetItem(int index) where T : Component { NDebug.Assert(this.m_ListViewerFacilityDetails != null, "FacilityDetailsListViewer.cs\nUI項目を並べるコンポーネントがアタッチされていません"); GameObject[] itemArray = this.m_ListViewerFacilityDetails.ItemArray; if (itemArray == null) { return (T)((object)null); } if (itemArray.Length <= index) { return (T)((object)null); } return itemArray[index].GetComponent(); } public List GetAllItem() where T : Component { NDebug.Assert(this.m_ListViewerFacilityDetails != null, "FacilityDetailsListViewer.cs\nUI項目を並べるコンポーネントがアタッチされていません"); GameObject[] itemArray = this.m_ListViewerFacilityDetails.ItemArray; if (itemArray == null) { return null; } List list = new List(); int num = itemArray.Length; for (int i = 0; i < num; i++) { list.Add(this.GetItem(i)); } return list; } [SerializeField] private uGUIListViewer m_ListViewerFacilityDetails; public class FacilityDetailsUI : MonoBehaviour { public FacilityInfoUI facilityInfoUI { get { FacilityInfoUI result; if ((result = this.m_InfoUI) == null) { result = (this.m_InfoUI = base.GetComponent()); } return result; } } private FacilityInfoUI m_InfoUI; } }