三层消息通知,修改细节

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

+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()
{