伴侣骑行
This commit is contained in:
1 parent
34cde86a28
commit
7744eec847
42 files changed
+18737
-13497
No files matched your search
@@ -0,0 +1,176 @@
|
||||
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;
|
||||
Transform content;
|
||||
Button rideButton;
|
||||
Button cancelButton;
|
||||
Button closeButton;
|
||||
Button searchButton;
|
||||
GameObject reviewPanel;
|
||||
InputField inputField;
|
||||
private int pageIndex = 0;
|
||||
private int pageSize = 8;
|
||||
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;
|
||||
|
||||
inputField.onValueChanged.AddListener(InputTextChanged);
|
||||
rideButton.onClick.AddListener(PreStart);
|
||||
cancelButton.onClick.AddListener(Cancel);
|
||||
closeButton.onClick.AddListener(Cancel);
|
||||
searchButton.onClick.AddListener(Search);
|
||||
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;
|
||||
}
|
||||
private void Search()
|
||||
{
|
||||
Utils.DestroyChildren(content);
|
||||
Refresh();
|
||||
}
|
||||
//开始伴侣骑行的面板
|
||||
private void PreStart()
|
||||
{
|
||||
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);
|
||||
|
||||
}
|
||||
//取消和关闭都进入单人骑行界面
|
||||
private void Cancel()
|
||||
{
|
||||
cyclingController.cyclingModel = CyclingModel.Single;
|
||||
transform.gameObject.SetActive(false);
|
||||
reviewPanel.SetActive(true);
|
||||
}
|
||||
private void Start()
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
|
||||
private void Refresh()
|
||||
{
|
||||
|
||||
var list = mapApi.GetRouteRanking(App.RouteIdParam, "1", pageIndex, pageSize, seachName);
|
||||
totalPages = list.data.TotalPages;
|
||||
var parent = transform.Find("Panel/PlayerList/Scroll View/Viewport/Content");
|
||||
foreach (var item in list.data.list)
|
||||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user