using Assets.Scripts; using Assets.Scripts.Apis.Models; using Assets.Scripts.UI.Prefab.Player; using System; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.SceneManagement; using UnityEngine.UI; using DG.Tweening; namespace Assets.Scenes.Ride.Scripts { public class ChangePlayerController : PFUIPanel { public Transform Panel; public Transform InfoPanel; public GameObject BikeBtn; public GameObject HelmetBtn; public GameObject UniformBtn; public GameObject SkinBtn; public GameObject SuitBtn; public GameObject SaveBtn; public GameObject ViewBtn; public GameObject CaputureBtn; public GameObject BackBtn; public Transform Content; public GameObject BikePrefab; public GameObject HelmetPrefab; public GameObject UniformPrefab; public GameObject SkinPrefab; public GameObject SuitPrefab; List data { get; set; } protected override void Awake() { UIManager.AddEvent(BikeBtn, EventTriggerType.PointerClick, BikeBtn_Click); UIManager.AddEvent(HelmetBtn, EventTriggerType.PointerClick, HelmetBtn_Click); UIManager.AddEvent(UniformBtn, EventTriggerType.PointerClick, UniformBtn_Click); UIManager.AddEvent(SkinBtn, EventTriggerType.PointerClick, SkinBtn_Click); UIManager.AddEvent(SuitBtn, EventTriggerType.PointerClick, SuitBtn_Click); UIManager.AddEvent(SaveBtn, EventTriggerType.PointerClick, SuitBtn_Click); UIManager.AddEvent(ViewBtn, EventTriggerType.PointerClick, ViewBtn_Click); UIManager.AddEvent(CaputureBtn, EventTriggerType.PointerClick, SuitBtn_Click); UIManager.AddEvent(BackBtn, EventTriggerType.PointerClick, BackBtn_Click); } protected override void Start() { transform.Find("MainNav").GetComponent().ShowBack(); GetData(); } private void GetData() { //获取装备信息列表初始化 var res = ConfigHelper.userApi.GetEquitmentList(); if (res.Result.result) { data = res.Result.data; Refresh(); } } private void Refresh(int type = 1) { if (data == null) return; BikeBtn.transform.Find("bg").gameObject.SetActive(type == 0); HelmetBtn.transform.Find("bg").gameObject.SetActive(type == 1); UniformBtn.transform.Find("bg").gameObject.SetActive(type == 2); SkinBtn.transform.Find("bg").gameObject.SetActive(type == 3); SuitBtn.transform.Find("bg").gameObject.SetActive(type == 4); var list = data.Where(c => c.Type == type).ToList(); //清空内容 Utils.DestroyChildren(Content); GameObject prefab = null; switch (type) { case 0: prefab = BikePrefab; break; case 1: prefab = HelmetPrefab; break; case 2: prefab = UniformPrefab; break; case 3: prefab = SkinPrefab; break; case 4: prefab = SuitPrefab; break; } if (type == 3) { GameObject colorPicker = null; for (int i = 0; i < list.Count; i++) { var item = list[i]; if (i % 2 == 0) { colorPicker = Instantiate(prefab, Content); colorPicker.SetActive(true); var left = colorPicker.transform.Find("Left"); left.GetComponent().Init(item.Id, item.Name, item.Remark, item.Url, item.IsLock); } else { var right = colorPicker.transform.Find("Right"); right.GetComponent().Init(item.Id, item.Name, item.Remark, item.Url, item.IsLock); } } } else { foreach (var item in list) { var o = Instantiate(prefab, Content); o.GetComponent().Init(item.Id, item.Name, item.Remark, item.Url, item.IsLock); o.SetActive(true); LayoutRebuilder.ForceRebuildLayoutImmediate((RectTransform)Content); } } LayoutRebuilder.ForceRebuildLayoutImmediate((RectTransform)Content); } private void ViewBtn_Click(BaseEventData baseEventData) { Panel.DOLocalMoveX(-1007, 1f); InfoPanel.DOLocalMoveX(931, 1f); ViewBtn.SetActive(false); SaveBtn.SetActive(false); } private void BackBtn_Click(BaseEventData baseEventData) { Panel.DOLocalMoveX(-538.5f, 1f); InfoPanel.DOLocalMoveX(541, 1f); ViewBtn.SetActive(true); SaveBtn.SetActive(true); } private void BikeBtn_Click(BaseEventData baseEventData) { Refresh(0); } private void HelmetBtn_Click(BaseEventData baseEventData) { Refresh(1); } private void UniformBtn_Click(BaseEventData baseEventData) { Refresh(2); } private void SkinBtn_Click(BaseEventData baseEventData) { Refresh(3); } private void SuitBtn_Click(BaseEventData baseEventData) { Refresh(4); } private void Update() { } } }