三层消息通知,修改细节
This commit is contained in:
1 parent
9231304269
commit
603efc7508
20 files changed
+1133
-66
No files matched your search
@@ -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()
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user