using BeinLab.Util; using ShadowStudio.Model; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using XRTool.Util; using XRTool.WorldUI; public class ContentIconList : MonoBehaviour { private List IconViewList; //private List ArtInfoList; public GameObject IconItem; private RectTransform contentRect; public ArtType artType; private int rightnum; private int leftnum; //private void CreateSuccess(ArtContainer container) //{ // for (int i = 0; i < IconViewList.Count; i++) // { // IconItem Item = IconViewList[i].transform.GetComponent(); // if (Item.info.ArtId == container.GetGoodsInfo().art_id) // { // Item.CreateSuccess(container); // } // } //} private void Start() { IconViewList = new List(); contentRect = transform.GetComponent(); if (ArtInfoMgr.Instance != null && ArtInfoMgr.Instance.IsInit) { //Init(); } else { ArtInfoMgr.Instance.InitComplete += () => { //Init(); }; } } public void Init() { var ArtInfoList = ArtInfoMgr.Instance.GetArtInfoList(artType); //UnityLog.Instance.LogError("artType"+ artType+ "count:"+ArtInfoList.Count); OnItemCreat(ArtInfoList.Count); for (int i = 0; i < IconViewList.Count; i++) { IconItem Item = IconViewList[i].transform.GetComponent(); Item.Init(ArtInfoList[i]); } //ArtInfoList.Clear(); //ArtInfoList = null; } void Update() { //CheckContent(); } void CheckContent() { if (contentRect.anchoredPosition3D.x > 0) { contentRect.anchoredPosition3D = Vector3.zero; } for (int i = 0; i < IconViewList.Count; i++) { RectTransform rectTransform; rectTransform = IconViewList[i].transform.GetComponent(); float num1 = Mathf.Abs(contentRect.anchoredPosition3D.x); if (rectTransform.anchoredPosition3D.x > 0) { //rectTransform.anchoredPosition3D = new Vector3(0, 0, 0); } if (rectTransform.anchoredPosition3D.x < num1 || rectTransform.anchoredPosition3D.x > 200 + num1) { IconViewList[i].transform.GetChild(0).gameObject.SetActive(false); } else { IconViewList[i].transform.GetChild(0).gameObject.SetActive(true); } } } //void Checkright() //{ // float num = 80 + contentRect.anchoredPosition3D.x; // if (num > 0) // { // if (num >= 40) // { // leftnum = -1; // rightnum = 6; // } // else // { // leftnum = 0; // rightnum = 7; // } // } // else // { // float num1 = num / 80; // float num2 = Mathf.Abs(num1); // int leftnumTemp = Mathf.CeilToInt(num2); // Debug.Log(leftnumTemp+"AAA"); // Debug.Log(num2+"BBB"); // if (leftnumTemp > num2 + 0.5) // { // leftnum = leftnumTemp - 1; // } // else // { // leftnum = leftnumTemp; // } // rightnum = 7 + leftnum; // Debug.Log(leftnum); // Debug.Log(rightnum); // } // for (int i = 0; i < IconChildList.Count; i++) // { // if (i <= leftnum || i >= rightnum) // { // IconChildList[i].SetActive(false); // } // else // { // IconChildList[i].SetActive(true); // } // } //} public void OnItemCreat(int _count) { if (_count > 0) { //IconItem.SetActive(true); //第一个item实例已经放在列表第一个位置,直接激活 //IconViewList.Add(IconItem); int i = 0; while (i <= _count - 1) { GameObject obj = GameObject.Instantiate(IconItem) as GameObject; obj.transform.SetParent(transform); //设置为 Content 的子对象 IconViewList.Add(obj); RectTransform t = IconViewList[i].GetComponent(); //获取前一个 item 的位置 //当前 item 位置放在在前一个 item 下方 obj.GetComponent().localPosition = new Vector3(t.localPosition.x, t.localPosition.y - t.rect.height, t.localPosition.z); obj.GetComponent().localEulerAngles = new Vector3(0, 0, 0); obj.GetComponent().localScale = new Vector3(1, 1, 1); i++; } //根据当前 item 个数更新 Content 高度 transform.GetComponent().sizeDelta = new Vector2(transform.GetComponent().sizeDelta.x, 30); } } }