1
This commit is contained in:
@@ -56,9 +56,39 @@ public class GuaGuaLeGPU : SubUIBase, IPointerDownHandler, IDragHandler
|
||||
private Texture2D progressReadTex;
|
||||
private int dragCount;
|
||||
|
||||
/// <summary>
|
||||
/// 刮刮卡面板打开期间,挂起 WebSocket 推送(AssetUpdated/BackpackUpdated)触发的用户数据刷新,
|
||||
/// 统一在点击"领取"按钮时才刷新用户数据(加金币/钻石/道具)。
|
||||
/// </summary>
|
||||
public static bool SuspendWsRefresh;
|
||||
|
||||
public override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
// 领取按钮:刮完后最后一步点击领取时,才刷新用户数据(金币/钻石/道具/刮刮卡数量)
|
||||
if (btn_Get != null)
|
||||
btn_Get.onClick.AddListener(OnGetClick);
|
||||
}
|
||||
|
||||
private void OnGetClick()
|
||||
{
|
||||
SuspendWsRefresh = false;
|
||||
string userId = GameManager.Instance?.user?.id;
|
||||
if (!string.IsNullOrEmpty(userId))
|
||||
APIRequestList.GetUser(userId, a => GameManager.Instance.UpdataUserData(a));
|
||||
}
|
||||
|
||||
public override void Hide()
|
||||
{
|
||||
SuspendWsRefresh = false;
|
||||
base.Hide();
|
||||
}
|
||||
|
||||
protected override void OnShow(object args = null)
|
||||
{
|
||||
base.OnShow(args);
|
||||
// 打开面板即挂起 WebSocket 推送刷新,数据统一在点击"领取"时更新
|
||||
SuspendWsRefresh = true;
|
||||
ResetCard();
|
||||
}
|
||||
|
||||
@@ -93,7 +123,8 @@ public class GuaGuaLeGPU : SubUIBase, IPointerDownHandler, IDragHandler
|
||||
progressReadTex = new Texture2D(rtWidth, rtHeight, TextureFormat.ARGB32, false);
|
||||
|
||||
ResetState();
|
||||
// 不在打开时抽奖:刮刮卡在刮开(RevealAll)时才消耗并更新数据
|
||||
// 打开时即抽奖出结果:提前创建奖品显示(涂层下面),加数据统一在最后点击"领取"按钮时进行
|
||||
FetchAward();
|
||||
}
|
||||
|
||||
private void ResetState()
|
||||
@@ -137,10 +168,7 @@ public class GuaGuaLeGPU : SubUIBase, IPointerDownHandler, IDragHandler
|
||||
break;
|
||||
}
|
||||
|
||||
// 抽奖完成后刷新用户数据(金币/钻石/刮刮卡数量变化)
|
||||
string userId = GameManager.Instance?.user?.id;
|
||||
if (!string.IsNullOrEmpty(userId))
|
||||
APIRequestList.GetUser(userId, a => GameManager.Instance.UpdataUserData(a));
|
||||
// 不在此处刷新用户数据:加金币/钻石/道具统一在最后点击"领取"按钮时进行
|
||||
});
|
||||
}
|
||||
|
||||
@@ -158,6 +186,9 @@ public class GuaGuaLeGPU : SubUIBase, IPointerDownHandler, IDragHandler
|
||||
|
||||
if (instanceMaskMat != null)
|
||||
instanceMaskMat.SetColor("_CoatColor", coatColor);
|
||||
|
||||
// 重置后重新抽奖:提前创建新的奖品显示
|
||||
FetchAward();
|
||||
}
|
||||
|
||||
public void RevealAll()
|
||||
@@ -169,9 +200,7 @@ public class GuaGuaLeGPU : SubUIBase, IPointerDownHandler, IDragHandler
|
||||
|
||||
ClearRT(maskRT, Color.black);
|
||||
|
||||
// 刮完后才抽奖:消耗刮刮卡,并在抽奖回调中刷新金币/钻石/卡片数量
|
||||
FetchAward();
|
||||
|
||||
// 刮开揭示时不刷新用户数据:加金币/钻石/道具统一在最后点击"领取"按钮时进行
|
||||
onRevealed?.Invoke();
|
||||
}
|
||||
|
||||
@@ -309,6 +338,8 @@ public class GuaGuaLeGPU : SubUIBase, IPointerDownHandler, IDragHandler
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
// 面板销毁时恢复 WebSocket 推送刷新,避免影响其他功能
|
||||
SuspendWsRefresh = false;
|
||||
if (maskRT != null) { maskRT.Release(); Destroy(maskRT); }
|
||||
if (instanceMaskMat != null) Destroy(instanceMaskMat);
|
||||
if (instanceEraseMat != null) Destroy(instanceEraseMat);
|
||||
|
||||
Reference in New Issue
Block a user