三层消息通知,修改细节

This commit is contained in:
Caiyanpeng committed 2021-12-15 18:18:12 +08:00
1 parent 9231304269
commit 603efc7508
20 files changed
+1133 -66

No files matched your search

+6
View File
@@ -178,5 +178,11 @@ namespace Assets.Scripts.Apis
var result = await GetAsync<JsonResult<MapRouteAreaDetail>>($"MapRouteArea/GetDetail?areaId={id}");
return result;
}
public async Task<JsonResult<List<MapMaxRanking>>> GetMaxRanking()
{
var result = await GetAsync<JsonResult<List<MapMaxRanking>>>($"Map/GetMaxRanking");
return result;
}
}
}
@@ -137,4 +137,25 @@ namespace Assets.Scripts.Apis.Models
/// </summary>
public DateTime UpdateTime { get; set; }
}
public class MapMaxRanking
{
/// <summary>
///
/// </summary>
public string WxHeadImg { get; set; }
/// <summary>
/// 啊吧啊吧
/// </summary>
public string NickName { get; set; }
/// <summary>
///
/// </summary>
public int Id { get; set; }
/// <summary>
/// 啊吧啊吧今日爬坡最高0M!
/// </summary>
public string Message { get; set; }
}
}
+9 -5
View File
@@ -161,19 +161,23 @@ public static class App
#endregion
//记录当前集合
public static MapRouteAreaItem currentArea = null;
internal static Dictionary<int,string> RouteNameDict = new Dictionary<int, string>();
static App()
{
InitLanguage();
#if !UNITY_EDITOR
//Host = "http://pf.juze.pro/";
//Host = "http://192.168.0.101:5087/";
//UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21000);
//TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21001);
Host = "https://wx.powerfun.com.cn/";
//Host = "http://192.168.0.101:5085/";
UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11000);
TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11001);
//线上
//Host = "https://wx.powerfun.com.cn/";
//UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11000);
//TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11001);
Host = "http://192.168.0.101:5085/";
UdpAddress = new IPEndPoint(IPAddress.Parse("192.168.0.97"), 11000);
TcpAddress = new IPEndPoint(IPAddress.Parse("192.168.0.102"), 21001);
Debug.unityLogger.logEnabled = false;
#endif
var isRower = PlayerPrefs.GetString("IsRowerMode");
+124 -23
View File
@@ -9,6 +9,7 @@ using Mapbox.Examples;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.SceneManagement;
@@ -26,6 +27,7 @@ public class MainController : BaseScene
DeviceCache.Init(PFConstants.DeviceCacheFolder);
Loom.Initialize();
msg = transform.Find("GameObject/Message").GetComponent<CanvasGroup>();
InitialMessage();
#if UNITY_ANDROID || UNITY_IOS
transform.GetComponent<CanvasScaler>().referenceResolution = new Vector2(844, 390);
//transform.Find("Panel").GetComponent<RectTransform>().sizeDelta = new Vector2(844, 390);
@@ -49,7 +51,77 @@ public class MainController : BaseScene
modalRect.sizeDelta = new Vector2(1600, 900);
App.MainDeviceAdapter.StartScan();
#endif
EventQueueSystem.AddListener<LinkedMessageEvent>(LinkedMessageHandler);
}
CanvasGroup[] msgs;
Vector3 msgLocation;
int msgIndex = 0;
private void InitialMessage()
{
msgLocation = 1 * msg.transform.localPosition;
var msg2 = Instantiate<CanvasGroup>(msg);
var msg3 = Instantiate<CanvasGroup>(msg);
msg2.transform.SetParent(msg.transform.parent);
msg3.transform.SetParent(msg.transform.parent);
msg2.transform.localPosition = 1 * msgLocation;
msg2.transform.localScale = Vector3.one;
msg2.alpha = 0;
msg3.transform.localPosition = 1 * msgLocation;
msg3.transform.localScale = Vector3.one;
msg3.alpha = 0;
msgs = new CanvasGroup[] { msg, msg2, msg3 };
}
private void LinkedMessageHandler(LinkedMessageEvent e)
{
//msg.transform.Find("Content")
emptyt = 0;
Debug.Log(e.content);
DoMessage(e);
}
private void DoMessage(LinkedMessageEvent e)
{
var selectIndex = msgIndex % 3;
var m = msgs[selectIndex];
if (msgIndex >= 3) //
{
//msgIndex = 0;
m.DOFade(0, 0.5f).onComplete = ()=>
{
SetMessage(m, e);
m.transform.localPosition = new Vector3(msgLocation.x, msgLocation.y - 54 * 2, msgLocation.z);
m.DOFade(1, 0.5f);
foreach (var item in msgs.Where((x, i) => i != selectIndex))
{
item.transform.DOLocalMoveY(item.transform.localPosition.y + 54, 0.5f);
}
};
}
else
{
SetMessage(m, e);
m.transform.localPosition = new Vector3(msgLocation.x, msgLocation.y - 54 * (msgIndex % 3), msgLocation.z);
m.DOFade(1, 0.5f);
}
msgIndex++;
}
void FinishMessage()
{
msgIndex = 0;
foreach (var item in msgs)
{
item.DOFade(0, 0.3f);
}
}
private void SetMessage(CanvasGroup m,LinkedMessageEvent e)
{
m.transform.Find("Avatar").GetComponent<RawImage>().texture = null;
Utils.DisplayHead(m.transform.Find("Avatar").GetComponent<RawImage>(), e.avatar);
m.transform.Find("Nickname").GetComponent<Text>().text = e.nickname;
m.transform.Find("Content").GetComponent<Text>().text = e.content;
}
// Start is called before the first frame update
async void Start()
@@ -121,7 +193,8 @@ public class MainController : BaseScene
LastRide();//检查本地异常中断的骑行并弹窗提示继续
}
float maxt = 0f; //用于获取全服最值内容
float emptyt = 0;//用于无消息计时
float t = 1f;
float scanTicks = 0;
// Update is called once per frame
@@ -142,6 +215,12 @@ public class MainController : BaseScene
UIManager.SendCompetitionStartMessage("Main");
t = 1;
scanTicks++;
emptyt++;
if (emptyt >= 10)
{
emptyt = 0;
FinishMessage();
}
if (scanTicks == 10)
{
//App.MainDeviceAdapter.StopScan();
@@ -154,55 +233,77 @@ public class MainController : BaseScene
{
if (item.RouteId > 0)
{
if (string.IsNullOrEmpty(item.RouteName))
if (!App.RouteNameDict.ContainsKey(item.RouteId))
{
var result = ConfigHelper.mapApi.GetById(item.RouteId);
if (result.result)
{
item.RouteName = result.data.Name;
App.RouteNameDict.Add(item.RouteId, item.RouteName);
}
}
var message = item.IsCompleted ? $"{item.Name}完成了{item.RouteName}的挑战" : $"{item.Name}发起了对{item.RouteName}的挑战";
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message), $"{item.RouteId}{item.Name}");
else
{
item.RouteName = App.RouteNameDict[item.RouteId];
}
var message = "";
if (item.TotalTicks == 0)
{
message = $"发起了对<color=#ff2742>{item.RouteName}</color>的挑战";
}
if (item.IsCompleted)
{
message = $"完成了<color=#ff2742>{item.RouteName}</color>的挑战";
}
if (!string.IsNullOrEmpty(message))
{
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}");
}
}
//距离
if (item.EndDistance > 50)
{
var message = $"{item.Name}在骑行过程中突破了{"50KM"}的挑战" ;
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message), $"{item.RouteId}{item.Name}50KM");
var message = $"在骑行过程中突破了<color=#00ff00>{"50KM"}</color>的挑战" ;
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}50KM");
}
//速度
if (item.Speed > 10)
{
var message = $"{item.Name}在骑行过程中速度达到了惊人的{item.Speed}KM/H";
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message), $"{item.RouteId}{item.Name}10KM/H");
var message = $"在骑行过程中速度达到了惊人的<color=#ff0000>{item.Speed}</color>KM/H";
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}10KM/H");
}
//功体比
if (item.WeightKg > 2)
{
var message = $"{item.Name}在骑行过程中功体比达到了惊人的{item.WeightKg}w/kg";
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message), $"{item.RouteId}{item.Name}2WeightKg");
var message = $"在骑行过程中功体比达到了惊人的<color=#0000ff>{item.WeightKg}</color>w/kg";
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}2WeightKg");
}
}
}
DoMessage();
}
float messageTime = 2;
CanvasGroup msg;
void DoMessage()
{
messageTime -= Time.deltaTime;
if (messageTime <= 0)
maxt -= Time.deltaTime;
if (maxt <= 0)
{
msg.DOFade(1, 0.5f).onComplete = () => Invoke("fade0", 0.8f);
messageTime += 2;
GetMaxRanking();
maxt += 60f;
}
}
private async void GetMaxRanking()
{
var res = await ConfigHelper.mapApi.GetMaxRanking();
if (res.result)
{
foreach (var item in res.data)
{
EventQueueSystem.QueueEvent(new LinkedMessageEvent(item.Id, item.Message, item.WxHeadImg, item.NickName));
}
}
}
CanvasGroup msg;
void fade0()
{
Debug.Log(162 + "执行");
msg.DOFade(0, 0.5f);
}
private async Task Login()
@@ -148,7 +148,7 @@ namespace Assets.Scenes.Ride.Scripts
// timer += Time.deltaTime;
//}
timer += Time.deltaTime;
while (timer >= 1 && eventQueue.Count > 0)
while (timer >= 2 && eventQueue.Count > 0)
{
var e = eventQueue.Dequeue() as GameEvent;
TriggerEvent(e);
@@ -91,12 +91,20 @@ namespace Assets.Scenes.Ride.Scripts
{
public int routeId;//线路Id
public string content;//消息
public string avatar;
public string nickname;
public LinkedMessageEvent(int routeId, string content)
{
this.routeId = routeId;
this.content = content;
}
public LinkedMessageEvent(int routeId, string content,string avatar,string nickname)
{
this.routeId = routeId;
this.content = content;
this.avatar = avatar;
this.nickname = nickname;
}
private void CreateContent()
{
@@ -459,6 +459,7 @@ public class MapListController : PFUIPanel
{
isRecent = true;
}
transform.Find("Panel/Top/FavContainer").gameObject.SetActive(App.CurrentRouteType != "My Collection");
}
void ResetList()
{
@@ -33,12 +33,25 @@ public class NewRouteDetailController : PFUIPanel
GC.Collect();
Debug.Log("list empty");
}
public override void Show()
{
base.Show();
if (App.TextureCache.ContainsKey("rotateImage"))
{
transform.Find("RawImage").GetComponent<RawImage>().texture = App.TextureCache["rotateImage"];
}
else if (App.DefaultRotateTexture != null)
{
transform.Find("RawImage").GetComponent<RawImage>().texture = App.DefaultRotateTexture;
}
}
void Start()
{
transform.Find("MainNav").GetComponent<MainNav>().ShowBack();
var rect = transform.GetComponent<RectTransform>();
rect.offsetMax = new Vector2(rect.offsetMax.x, 0);
rect.offsetMin = new Vector2(rect.offsetMin.x, 0);
BindHeadImage();
}
// Update is called once per frame
@@ -78,21 +78,22 @@ public class NewRouteOverviewController: PFUIPanel
{
ToList("All Route");
});
BindHeadImage();
//banner暂时注释
//#if !(UNITY_ANDROID || UNITY_IOS)
// var banner = collectionContent.Find("Banner");
// bannerContent = banner.Find("Viewport/Content").GetComponent<RectTransform>();
// var btnLeft = banner.Find("Left");
// var btnRight = banner.Find("Right");
// UIManager.AddEvent(btnLeft.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
// {
// MoveBanner(false);
// });
// UIManager.AddEvent(btnRight.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
// {
// MoveBanner(true);
// });
//#endif
//#if !(UNITY_ANDROID || UNITY_IOS)
// var banner = collectionContent.Find("Banner");
// bannerContent = banner.Find("Viewport/Content").GetComponent<RectTransform>();
// var btnLeft = banner.Find("Left");
// var btnRight = banner.Find("Right");
// UIManager.AddEvent(btnLeft.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
// {
// MoveBanner(false);
// });
// UIManager.AddEvent(btnRight.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
// {
// MoveBanner(true);
// });
//#endif
}
int pageIndex = 0, pageSize = 10;
bool isEnd = false,isLock = false;
@@ -167,6 +168,12 @@ public class NewRouteOverviewController: PFUIPanel
bannerContent.DOLocalMoveX(startPos.Value + bannerIndex * 1171, 0.5f);
#endif
}
/// <summary>
/// 绑定头像
/// </summary>
void ToList(string type)
{
App.CurrentRouteType = type;// "";
+21 -1
View File
@@ -6,6 +6,7 @@ using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using Assets.Scripts;
//namespace Assets.Scripts.UI.Prefab.Panel
//{
@@ -55,11 +56,30 @@ public class PFUIPanel : UIBehaviour
return;
}
var rawImg = panel.GetComponent<RawImage>();
if(rawImg != null)
if (rawImg != null)
{
rawImg.material = material;
return;
}
}
protected void BindHeadImage()
{
if (!transform.Find("HeadImage")) return;
var headImage = this.transform.Find("HeadImage").GetComponent<RawImage>();
var material = Instantiate(Resources.Load<Material>("UI/Material/RoundedCornersTextureMaterial"));
var rect = ((RectTransform)headImage.transform).rect;
material.SetVector(Shader.PropertyToID("_WidthHeightRadius"), new Vector4(rect.width, rect.height, rect.height, 0));
headImage.material = material;
//if (App.FromLogin)
//{
Utils.DisplayHead(headImage, App.CurrentUser.WxHeadImg);
//}
UIManager.AddEvent(headImage.gameObject, EventTriggerType.PointerClick, (e) =>
{
UIManager.ShowUserInfoPanel();
});
}
}
//}
+1 -5
View File
@@ -435,14 +435,10 @@ public class UIManager : MonoBehaviour
InitNow();
}
EventQueueSystem.AddListener<CompetitonStartMessageEvent>(CompetitonStartHandler);
EventQueueSystem.AddListener<LinkedMessageEvent>(LinkedMessageHandler);
}
//首页消息通知
private void LinkedMessageHandler(LinkedMessageEvent e)
{
Debug.Log(e.content);
}
//比赛即将开始消息提醒
private void CompetitonStartHandler(CompetitonStartMessageEvent e)
{