using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; using UnityEngine; using UnityEngine.UI; using DG.Tweening; public class Carousel : UIController { [SerializeField] Button[] Btn; [SerializeField] Button PrototypeBtn; [SerializeField] Transform ParentGame; /// /// 图片地址 /// [SerializeField] List url; int MoveSum = 0; [SerializeField] CarouselSmall CarouselSmall; [SerializeField] Button Btn1; [SerializeField] Button Btn2; /// /// 链接地址 /// [SerializeField] List links; void Start() { Btn1.onClick.AddListener(() => { if (MoveSum % Btn.Length == 0) { MoveSum = 0; } show(MoveSum); MoveSum++; Debug.Log(MoveSum); }); Btn2.onClick.AddListener(() => { if (MoveSum % Btn.Length == 0) { MoveSum = Btn.Length; } MoveSum--; show(MoveSum); Debug.Log(MoveSum); }); } /// /// 初始化 /// /// 图片地址 /// 链接地址 public void init(List urls, List links=null) { if (Btn != null) { //清空item for (int i = 0; i < Btn.Length; i++) { Destroy(Btn[i].gameObject); } Btn = null; } this.url = urls; this.links = links; gameObject.SetActive(true); //生成item if (url.Count != 0) { Btn = new Button[url.Count]; for (int i = 0; i < url.Count; i++) { Btn[i] = Instantiate(PrototypeBtn, ParentGame); Btn[i].name = i.ToString(); } PrototypeBtn.gameObject.SetActive(false); //降低batches if (Btn.Length != 0) { foreach (var item in Btn) { item.gameObject.SetActive(true); item.onClick.AddListener(() => Application.OpenURL(links[int.Parse(item.name)])); UIManager.ins.LoadImageAsync(url[int.Parse(item.name)], item.image, false); } for (int i = 0; i < Btn.Length; i++) { if (i > 0) { Btn[i].transform.DOLocalMoveX(Btn[i].transform.GetComponent().sizeDelta.x * i, 0.01f); } } } } //CarouselSmall.init(Btn.Length); //CarouselSmall.show(MoveSum); } float time = 0; private void Update() { time += Time.deltaTime; if(time>=3) { time = 0; show(); } } new void show() { if (Btn != null) { if (Btn.Length > 1) { if (MoveSum % Btn.Length != 0) { ParentGame.DOLocalMoveX(-MoveSum * 736, 0.25f); CarouselSmall.show(MoveSum); } else { MoveSum = 0; ParentGame.DOLocalMoveX(-MoveSum * 736, 0.25f); CarouselSmall.show(MoveSum); } MoveSum++; } } } public void show(int sum) { if (Btn.Length > 1) { ParentGame.DOLocalMoveX(-sum * 736, 0.25f); } MoveSum = sum; } }