182 lines
6.0 KiB
C#
182 lines
6.0 KiB
C#
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<EquitmentModel> 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<MainNav>().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<AbstractEquipmentScript>().Init(item.Id, item.Name, item.Remark, item.Url, item.IsLock);
|
|
}
|
|
else
|
|
{
|
|
var right = colorPicker.transform.Find("Right");
|
|
right.GetComponent<AbstractEquipmentScript>().Init(item.Id, item.Name, item.Remark, item.Url, item.IsLock);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach (var item in list)
|
|
{
|
|
var o = Instantiate(prefab, Content);
|
|
o.GetComponent<AbstractEquipmentScript>().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()
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|