2021-04-15 10:13:01 +08:00
|
|
|
|
using Assets.Scenes.Ride.Scripts.Model;
|
|
|
|
|
|
using Assets.Scripts;
|
|
|
|
|
|
using Assets.Scripts.Apis;
|
|
|
|
|
|
using Assets.Scripts.Apis.Models;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
using UnityEngine.EventSystems;
|
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Assets.Scenes.Ride.Scripts
|
|
|
|
|
|
{
|
|
|
|
|
|
public class SelectPlayerFactory : MonoBehaviour
|
|
|
|
|
|
{
|
|
|
|
|
|
GameObject prefab;
|
|
|
|
|
|
GameObject scroll;
|
2021-04-21 14:08:45 +08:00
|
|
|
|
GameObject selectPanel;
|
|
|
|
|
|
GameObject nearPanel;
|
2021-04-15 10:13:01 +08:00
|
|
|
|
Transform content;
|
|
|
|
|
|
Button rideButton;
|
|
|
|
|
|
Button cancelButton;
|
|
|
|
|
|
Button closeButton;
|
|
|
|
|
|
Button searchButton;
|
|
|
|
|
|
GameObject reviewPanel;
|
|
|
|
|
|
InputField inputField;
|
|
|
|
|
|
private int pageIndex = 0;
|
2021-04-22 19:29:59 +08:00
|
|
|
|
private int pageSize = 10;
|
2021-04-15 10:13:01 +08:00
|
|
|
|
private int totalPages = 0;
|
|
|
|
|
|
private string seachName = string.Empty;
|
|
|
|
|
|
CyclingController cyclingController;
|
|
|
|
|
|
public List<GameObject> gameObjects = new List<GameObject>();
|
|
|
|
|
|
List<SelectPlayerItemScript> selectPlayerItemScripts = new List<SelectPlayerItemScript>();
|
|
|
|
|
|
MapApi mapApi;
|
|
|
|
|
|
private void Awake()
|
|
|
|
|
|
{
|
|
|
|
|
|
mapApi = new MapApi();
|
|
|
|
|
|
cyclingController = FindObjectOfType<CyclingController>();
|
|
|
|
|
|
//分页查询当前路数排行榜选手成绩列表
|
|
|
|
|
|
prefab = Resources.Load<GameObject>("UI/Prefab/Ride/SelectPlayerItem");
|
|
|
|
|
|
scroll = transform.Find("Panel/PlayerList/Scroll View").gameObject;
|
|
|
|
|
|
content = transform.Find("Panel/PlayerList/Scroll View/Viewport/Content");
|
|
|
|
|
|
rideButton = transform.Find("Panel/RideButton").GetComponent<Button>();
|
|
|
|
|
|
cancelButton = transform.Find("Panel/CancelButton").GetComponent<Button>();
|
|
|
|
|
|
closeButton = transform.Find("Panel/Close").GetComponent<Button>();
|
|
|
|
|
|
searchButton = transform.Find("Panel/SearchButton").GetComponent<Button>();
|
|
|
|
|
|
inputField = transform.Find("Panel/InputField").GetComponent<InputField>();
|
|
|
|
|
|
reviewPanel = transform.parent.Find("ReviewPanel").gameObject;
|
2021-04-21 14:08:45 +08:00
|
|
|
|
selectPanel = transform.parent.Find("SelectPanel").gameObject;
|
|
|
|
|
|
nearPanel = transform.parent.Find("NearPanel").gameObject;
|
2021-04-15 10:13:01 +08:00
|
|
|
|
|
|
|
|
|
|
inputField.onValueChanged.AddListener(InputTextChanged);
|
2021-04-21 14:08:45 +08:00
|
|
|
|
//rideButton.onClick.AddListener(PreStart);
|
|
|
|
|
|
//cancelButton.onClick.AddListener(Cancel);
|
|
|
|
|
|
//closeButton.onClick.AddListener(Cancel);
|
|
|
|
|
|
//searchButton.onClick.AddListener(Search);
|
|
|
|
|
|
|
|
|
|
|
|
UIManager.AddEvent(rideButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, PreStart);
|
|
|
|
|
|
UIManager.AddEvent(cancelButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, Cancel);
|
|
|
|
|
|
UIManager.AddEvent(closeButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, Cancel);
|
|
|
|
|
|
UIManager.AddEvent(searchButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, Search);
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-15 10:13:01 +08:00
|
|
|
|
UIManager.AddEvent(scroll, UnityEngine.EventSystems.EventTriggerType.EndDrag, OnEndDrag);
|
|
|
|
|
|
|
|
|
|
|
|
gameObjects.Add(transform.Find("Panel/Player1").gameObject);
|
|
|
|
|
|
gameObjects.Add(transform.Find("Panel/Player2").gameObject);
|
|
|
|
|
|
gameObjects.Add(transform.Find("Panel/Player3").gameObject);
|
|
|
|
|
|
gameObjects.Add(transform.Find("Panel/Player4").gameObject);
|
|
|
|
|
|
gameObjects.Add(transform.Find("Panel/Player5").gameObject);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void InputTextChanged(string input)
|
|
|
|
|
|
{
|
|
|
|
|
|
seachName = input;
|
|
|
|
|
|
}
|
2021-04-21 14:08:45 +08:00
|
|
|
|
private void Search(BaseEventData baseEventData)
|
2021-04-15 10:13:01 +08:00
|
|
|
|
{
|
|
|
|
|
|
Utils.DestroyChildren(content);
|
|
|
|
|
|
Refresh();
|
|
|
|
|
|
}
|
|
|
|
|
|
//开始伴侣骑行的面板
|
2021-04-21 14:08:45 +08:00
|
|
|
|
private void PreStart(BaseEventData baseEventData)
|
2021-04-15 10:13:01 +08:00
|
|
|
|
{
|
|
|
|
|
|
transform.gameObject.SetActive(false);
|
|
|
|
|
|
foreach (var item in gameObjects)
|
|
|
|
|
|
{
|
|
|
|
|
|
var seletedPlayerScript = item.GetComponent<SeletedPlayerScript>();
|
|
|
|
|
|
if (seletedPlayerScript.isUsed)
|
|
|
|
|
|
{
|
|
|
|
|
|
cyclingController.selectParamModel.RankingsId.Add(seletedPlayerScript.GetRankingId());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
cyclingController.cyclingModel = CyclingModel.Review;
|
|
|
|
|
|
if (!reviewPanel.activeSelf)
|
|
|
|
|
|
{
|
|
|
|
|
|
reviewPanel.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
reviewPanel.GetComponent<ReviewFactory>().Refresh();
|
|
|
|
|
|
}
|
|
|
|
|
|
reviewPanel.transform.Find("ReviewArea").gameObject.SetActive(true);
|
|
|
|
|
|
reviewPanel.transform.Find("SingleArea").gameObject.SetActive(false);
|
2021-04-21 14:08:45 +08:00
|
|
|
|
nearPanel.SetActive(true);
|
2021-04-15 10:13:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
//取消和关闭都进入单人骑行界面
|
2021-04-21 14:08:45 +08:00
|
|
|
|
private void Cancel(BaseEventData baseEventData)
|
2021-04-15 10:13:01 +08:00
|
|
|
|
{
|
2021-04-21 14:08:45 +08:00
|
|
|
|
//cyclingController.cyclingModel = CyclingModel.Single;
|
2021-04-15 10:13:01 +08:00
|
|
|
|
transform.gameObject.SetActive(false);
|
2021-04-21 14:08:45 +08:00
|
|
|
|
reviewPanel.SetActive(false);
|
|
|
|
|
|
selectPanel.SetActive(true);
|
|
|
|
|
|
nearPanel.SetActive(false);
|
2021-04-15 10:13:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
private void Start()
|
|
|
|
|
|
{
|
2021-04-22 19:29:59 +08:00
|
|
|
|
CreateGameObject(cyclingController.mapRouteRankingList);
|
2021-04-15 10:13:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void Refresh()
|
|
|
|
|
|
{
|
|
|
|
|
|
var list = mapApi.GetRouteRanking(App.RouteIdParam, "1", pageIndex, pageSize, seachName);
|
|
|
|
|
|
totalPages = list.data.TotalPages;
|
2021-04-22 19:29:59 +08:00
|
|
|
|
CreateGameObject(list.data.list);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void CreateGameObject(List<MapRouteRanking> list)
|
|
|
|
|
|
{
|
2021-04-15 10:13:01 +08:00
|
|
|
|
var parent = transform.Find("Panel/PlayerList/Scroll View/Viewport/Content");
|
2021-04-22 19:29:59 +08:00
|
|
|
|
foreach (var item in list)
|
2021-04-15 10:13:01 +08:00
|
|
|
|
{
|
|
|
|
|
|
GameObject newObj = (GameObject)Instantiate(prefab, parent);
|
|
|
|
|
|
var selectPlayerItemScript = newObj.GetComponent<SelectPlayerItemScript>();
|
|
|
|
|
|
selectPlayerItemScript.SetRankingId(item.Id.ToString());
|
|
|
|
|
|
selectPlayerItemScript.SetName(item.NickName);
|
|
|
|
|
|
selectPlayerItemScript.SetTimer(item.TotalTime);
|
|
|
|
|
|
selectPlayerItemScript.SetHeadImage(item.WxHeadImg);
|
|
|
|
|
|
selectPlayerItemScripts.Add(selectPlayerItemScript);
|
|
|
|
|
|
UIManager.AddEvent(selectPlayerItemScript.GetButton().gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, OnSelectClick);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void OnSelectClick(BaseEventData baseEventData)
|
|
|
|
|
|
{
|
|
|
|
|
|
var selectPlayerItemScript = baseEventData.selectedObject.GetComponent<SelectPlayerItemScript>();
|
|
|
|
|
|
foreach (var item in gameObjects)
|
|
|
|
|
|
{
|
|
|
|
|
|
var seletedPlayerScript = item.GetComponent<SeletedPlayerScript>();
|
|
|
|
|
|
if (!seletedPlayerScript.isUsed && !selectPlayerItemScript.isSelected)
|
|
|
|
|
|
{
|
|
|
|
|
|
seletedPlayerScript.SetHead(selectPlayerItemScript.GetImageTexture(), true);
|
|
|
|
|
|
seletedPlayerScript.SetName(selectPlayerItemScript.GetName());
|
|
|
|
|
|
seletedPlayerScript.SetRankingId(selectPlayerItemScript.GetRankingId());
|
|
|
|
|
|
UIManager.AddEvent(seletedPlayerScript.GetButton().gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, OnCloseClick);
|
|
|
|
|
|
selectPlayerItemScript.isSelected = true;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void OnCloseClick(BaseEventData baseEventData)
|
|
|
|
|
|
{
|
|
|
|
|
|
var seletedPlayerScript = baseEventData.selectedObject.transform.parent.GetComponent<SeletedPlayerScript>();
|
|
|
|
|
|
var seletPlayerItemScript = selectPlayerItemScripts.Where(c => c.GetRankingId() == seletedPlayerScript.GetRankingId()).FirstOrDefault();
|
|
|
|
|
|
if (seletPlayerItemScript != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
seletPlayerItemScript.isSelected = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
seletedPlayerScript.Reset();
|
|
|
|
|
|
}
|
|
|
|
|
|
private void OnEndDrag(BaseEventData arg0)
|
|
|
|
|
|
{
|
|
|
|
|
|
var scrollrect = scroll.GetComponent<ScrollRect>();
|
|
|
|
|
|
if (scrollrect.verticalNormalizedPosition <= 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (pageIndex < totalPages )
|
|
|
|
|
|
{
|
|
|
|
|
|
pageIndex++;
|
|
|
|
|
|
Refresh();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (scrollrect.verticalNormalizedPosition >= 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (pageIndex >0)
|
|
|
|
|
|
{
|
|
|
|
|
|
pageIndex--;
|
|
|
|
|
|
Refresh();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|