骑行和赛事分享&集合正在骑行的人数

This commit is contained in:
lishuo committed 2021-12-27 18:29:23 +08:00
1 parent 2743c8d185
commit ffc98f1a58
23 files changed
+3736 -1103

No files matched your search

@@ -6,6 +6,7 @@ using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using DG.Tweening;
namespace Assets.Scenes.Ride.Scripts
{
@@ -19,6 +20,11 @@ namespace Assets.Scenes.Ride.Scripts
GameObject TitleImage { get; set; }
GameObject WatchTitle { get; set; }
GameObject RankingPanel { get; set; }
GameObject ShareButton { get; set; }
GameObject ToolBarPanel { get; set; }
GameObject WeChatButton { get; set; }
RawImage TopHead { get; set; }
RawImage SecondHead { get; set; }
RawImage ThirdHead { get; set; }
@@ -50,8 +56,14 @@ namespace Assets.Scenes.Ride.Scripts
WatchTitle = transform.Find("WatchTitle").gameObject;
CloseTitle = transform.Find("CloseTitle").GetComponent<Text>();
CloseTime = transform.Find("CloseTime").GetComponent<Text>();
#if UNITY_IOS || UNITY_ANDROID
ShareButton = transform.Find("ShareButton").gameObject;
ToolBarPanel = transform.Find("ToolBarPanel").gameObject;
WeChatButton = transform.Find("ToolBarPanel/WeChatButton").gameObject;
ShareButton.SetActive(!cyclingController.isWatch);
UIManager.AddEvent(ShareButton, UnityEngine.EventSystems.EventTriggerType.PointerClick, OpenShare);
UIManager.AddEvent(WeChatButton, UnityEngine.EventSystems.EventTriggerType.PointerClick, OpenShare);
#endif
SpriteTop = Resources.Load<Sprite>("Images/Ride/Match/top-1");
SpriteSecond = Resources.Load<Sprite>("Images/Ride/Match/top-2");
SpriteThrid = Resources.Load<Sprite>("Images/Ride/Match/top-3");
@@ -212,5 +224,24 @@ namespace Assets.Scenes.Ride.Scripts
SceneManager.LoadScene("MainScene");
App.MainSceneParam["Name"] = "RaceHomePanel";
}
private void OpenShare(BaseEventData baseEventData)
{
((RectTransform)ToolBarPanel.transform).pivot = new Vector2(0, ((RectTransform)ToolBarPanel.transform).pivot.y);
ShareButton.SetActive(false);
ToolBarPanel.transform.DOScaleX(1, 1);
}
private void ShareWechat(BaseEventData baseEventData)
{
if (App.weChatController.IsWeChatAppInstalled())
{
App.weChatController.ShareWebpageToWX(0, $"{App.CurrentUser.WebHost}Mine/MatchPreview?id={cyclingController.competitionId}&Token={App.CurrentUser.cookie}", cyclingController.competition.NickName, "By " + App.CurrentUser.Nickname);
}
else
{
Utils.showToast(null, "未安装微信");
}
}
}
}
@@ -6,6 +6,7 @@ using Assets.Scripts;
using Assets.Scripts.Apis.Models;
using System.Collections.Generic;
using DG.Tweening;
using System.Linq;
namespace Assets.Scenes.Ride.Scripts
{
@@ -62,6 +63,7 @@ namespace Assets.Scenes.Ride.Scripts
altitudeGraph = panel.transform.Find("AltitudeGraph").GetComponent<RawImage>();
mapRanking = panel.transform.Find("MapRanking");
mapId = panel.transform.Find("MapId").GetComponent<Text>();
#if UNITY_STANDALONE_WIN
UIManager.RemoveEvent(distance.gameObject);
UIManager.RemoveEvent(slope.gameObject);
@@ -135,9 +137,18 @@ namespace Assets.Scenes.Ride.Scripts
DrawMapRouteAsync(route.Id);
AddProcess(10);
//查询排行榜
var list = mapApi.GetRouteRanking(App.RouteIdParam, "1", 0, 10, "");
var list = mapApi.GetRouteRanking(App.RouteIdParam, "1", 0, 99999, "");
if (list.result)
{
if (list.data.list.Count > 10)
{
var ViewAll = panel.transform.Find("ViewAll").gameObject;
ViewAll.SetActive(true);
UIManager.AddEvent(ViewAll, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
{
Application.OpenURL($"{App.CurrentUser.WebHost}/Routes/{cyclingController.mapRoute.Id}?Token={App.CurrentUser.cookie}");
});
}
CreateRankingList(list.data.list);
AddProcess(10);
}
@@ -149,14 +160,20 @@ namespace Assets.Scenes.Ride.Scripts
{
#if UNITY_IOS || UNITY_ANDROID
var prefab = Resources.Load<GameObject>("UI/Prefab/Ride/Mobile/RankingItem");
var myprefab = Resources.Load<GameObject>("UI/Prefab/Ride/Mobile/MySelfRankingItem");
#else
var prefab = Resources.Load<GameObject>("UI/Prefab/Ride/RankingItem");
var myprefab = Resources.Load<GameObject>("UI/Prefab/Ride/MySelfRankingItem");
#endif
var parent = panel.transform.Find("MapRanking");
var title = panel.transform.Find("RankingTitle").gameObject;
title.SetActive(list.Count != 0);
int index = 0;
foreach (var item in list)
{
index++;
if (index > 10)
break;
GameObject newObj = (GameObject)Instantiate(prefab, parent);
var selectPlayerItemScript = newObj.GetComponent<RankingItemScript>();
selectPlayerItemScript.SetRanking(item.RowNumber.ToString());
@@ -166,6 +183,19 @@ namespace Assets.Scenes.Ride.Scripts
var texture = cyclingController.GetCountryImageByCode(item.CountryCode);
selectPlayerItemScript.SetCountry(texture);
}
//如果有自己的记录显示自己的排名
var myself = list.Where(c => c.MySelf).FirstOrDefault();
if (myself != null)
{
GameObject newObj = (GameObject)Instantiate(myprefab, parent);
var selectPlayerItemScript = newObj.GetComponent<RankingItemScript>();
selectPlayerItemScript.SetRanking(myself.RowNumber.ToString());
selectPlayerItemScript.SetName(myself.NickName);
selectPlayerItemScript.SetTimer(myself.IsDNF ? "DNF" : myself.TotalTime);
selectPlayerItemScript.SetHead(myself.WxHeadImg);
var texture = cyclingController.GetCountryImageByCode(myself.CountryCode);
selectPlayerItemScript.SetCountry(texture);
}
}
}
}
@@ -132,7 +132,7 @@ namespace Assets.Scenes.Ride.Scripts
//上传数据
public override void Upload()
{
if (!mainController.cyclingController.recorderData.Saved)//处理重复上传的问题
if (mainController.cyclingController.recorderData != null&&!mainController.cyclingController.recorderData.Saved)//处理重复上传的问题
{
mainController.Save(TotalDistance);
}
@@ -5,6 +5,7 @@ using UnityEngine;
using UnityEngine.UI;
using System.Linq;
using System;
using DG.Tweening;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
@@ -40,6 +41,8 @@ namespace Assets.Scenes.Ride.Scripts
GameObject goResultBtn;
GameObject cancelBtn;
GameObject shareWxBtn;
GameObject shareButton;
Transform toolbar;
#endregion
CyclingController cyclingController;
@@ -68,8 +71,11 @@ namespace Assets.Scenes.Ride.Scripts
#endregion
goResultBtn = transform.Find("ConFirmButton").gameObject;
cancelBtn = transform.Find("CloseButton").gameObject;
toolbar = transform.Find("ToolBarPanel");
#if UNITY_ANDROID || UNITY_IOS
shareWxBtn = transform.Find("ToolBarPanel/WeChatButton").gameObject;
shareButton = transform.Find("ShareButton").gameObject;
#endif
}
public void InjectController(CyclingController controller)
@@ -78,12 +84,27 @@ namespace Assets.Scenes.Ride.Scripts
cyclingController.AddEvent(goResultBtn, UnityEngine.EventSystems.EventTriggerType.PointerClick, GoResult);
cyclingController.AddEvent(cancelBtn, UnityEngine.EventSystems.EventTriggerType.PointerClick, Cancel);
cyclingController.AddEvent(shareWxBtn, EventTriggerType.PointerClick, shareToWx);
cyclingController.AddEvent(shareButton, EventTriggerType.PointerClick, opneShare);
}
private void opneShare(BaseEventData baseEventData)
{
((RectTransform)toolbar).pivot = new Vector2(0, ((RectTransform)toolbar).pivot.y);
toolbar.gameObject.SetActive(true);
shareButton.SetActive(false);
toolbar.DOScaleX(1,1);
}
private void shareToWx(BaseEventData b)
{
var bs = cyclingController.CaptureCamera();
WeChatController.Instance.ShareImageToWX(0, bs);
if (App.weChatController.IsWeChatAppInstalled())
{
App.weChatController.ShareWebpageToWX(0, $"{App.CurrentUser.WebHost}Mine/MatchPreview?id={cyclingController.competitionId}&Token={App.CurrentUser.cookie}", cyclingController.competition.NickName, "By " + App.CurrentUser.Nickname);
}
else
{
Utils.showToast(null, "未安装微信");
}
}
private void GoResult(BaseEventData baseEventData)
@@ -13,7 +13,6 @@ namespace Assets.Scenes.Ride.Scripts
protected override void Start()
{
base.Start();
UIManager.AddEvent(startBtn.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, StartRide);
UIManager.AddEvent(singleButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, SingleRide);
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShadowRide);