From 052bd75034e32ba28014e6a0e0cb9d05a5bec335 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A3=AE2003?= <2384017988@qq.com>
Date: Tue, 7 Jul 2026 17:10:00 +0800
Subject: [PATCH] 1
---
.../GameConfig_SubClass/UserLevelConfig.cs | 4 +-
Assets/MyGame/aa/UI/Home/Sub/UserInfoPanel.cs | 94 ++++++++++++++++++-
2 files changed, 94 insertions(+), 4 deletions(-)
diff --git a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/UserLevelConfig.cs b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/UserLevelConfig.cs
index 257b66326..759def31c 100644
--- a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/UserLevelConfig.cs
+++ b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/UserLevelConfig.cs
@@ -18,12 +18,12 @@ namespace Assets.MyGame.Scripts.Net.API.GameConfig_SubClass
///
/// 经验下限
///
- public int expMin;
+ public long expMin;
///
/// 经验上限
///
- public int expMax;
+ public long expMax;
///
/// 奖励金币
diff --git a/Assets/MyGame/aa/UI/Home/Sub/UserInfoPanel.cs b/Assets/MyGame/aa/UI/Home/Sub/UserInfoPanel.cs
index 7b0a1030c..22a7d8ed5 100644
--- a/Assets/MyGame/aa/UI/Home/Sub/UserInfoPanel.cs
+++ b/Assets/MyGame/aa/UI/Home/Sub/UserInfoPanel.cs
@@ -1,5 +1,6 @@
using Assets.Framework.Tool;
using Assets.MyGame.Scripts.Net;
+using Assets.MyGame.Scripts.Net.API.GameConfig_SubClass;
using Assets.MyGame.Scripts.Net.APIRequest.Params;
using System.Collections.Generic;
using TMPro;
@@ -67,8 +68,12 @@ public class UserInfoPanel : SubUIBase
GameManager gameManager => GameManager.Instance;
private List _avatarToggles = new List();
private List _avatarFrameToggles = new List();
- private string _pendingAvatarName; // 选中的待确认头像名
- private string _pendingAvatarFrameName; // 选中的待确认头像框名
+ private string _pendingAvatarName;
+ private string _pendingAvatarFrameName;
+
+ // 等级奖励预览
+ private int _previewLevel;
+ private List _levelConfigs;
public override void Awake()
{
@@ -88,6 +93,10 @@ public class UserInfoPanel : SubUIBase
// 改个性签名
btn_Change.onClick.AddListener(OnClickSaveSignature);
+
+ // 等级预览翻页
+ btn_LevelNext.onClick.AddListener(OnClickLevelNext);
+ btn_LevelUp.onClick.AddListener(OnClickLevelUp);
}
protected override void OnShow(object args = null)
@@ -142,6 +151,87 @@ public class UserInfoPanel : SubUIBase
tMPText_OldPhoneNumber.text = MaskPhone(gameManager.user.BaseInfo.mobile);
if (tMPText_PhoneNumberXGMM != null)
tMPText_PhoneNumberXGMM.text = MaskPhone(gameManager.user.BaseInfo.mobile);
+
+ // 等级信息
+ RefreshLevelUI();
+ }
+
+ // ==================== 等级奖励预览 ====================
+
+ private void RefreshLevelUI()
+ {
+ _levelConfigs = GameManager.Instance?.gameConfig?.userLevelConfigs;
+ if (_levelConfigs == null || _levelConfigs.Count == 0) return;
+
+ var assets = gameManager.user.assets;
+ int currentLevel = assets.level;
+
+ if (tMPText_UserLevel != null)
+ tMPText_UserLevel.text = $"LV.{currentLevel}";
+
+ if (_previewLevel <= 0)
+ _previewLevel = currentLevel;
+ UpdateLevelPreview();
+ }
+
+ private void UpdateLevelPreview()
+ {
+ if (_levelConfigs == null) return;
+
+ var cfg = _levelConfigs.Find(c => c.level == _previewLevel);
+ if (cfg == null) return;
+
+ var assets = gameManager.user.assets;
+
+ if (tMPText_Level != null)
+ tMPText_Level.text = $"{cfg.level}级奖励";
+
+ // 进度条
+ if (slider_UserLevel != null)
+ {
+ slider_UserLevel.minValue = cfg.expMin;
+ slider_UserLevel.maxValue = cfg.expMax;
+ slider_UserLevel.value = Mathf.Clamp(assets.exp, cfg.expMin, cfg.expMax);
+ }
+
+ // 奖励预览:productList
+ if (backPackPropItemParent != null && backPackPropItemPrefab != null)
+ {
+ for (int i = backPackPropItemParent.childCount - 1; i >= 0; i--)
+ Destroy(backPackPropItemParent.GetChild(i).gameObject);
+
+ if (cfg.productList != null && cfg.productList.Count > 0)
+ {
+ foreach (var product in cfg.productList)
+ {
+ var obj = Instantiate(backPackPropItemPrefab.gameObject, backPackPropItemParent);
+ obj.SetActive(true);
+ var item = obj.GetComponent();
+ if (item == null) continue;
+ item.Init(APIManager.baseURL + product.imageUrl, product.count, (PropEnum)product.type);
+ }
+ }
+ }
+ }
+
+ private void OnClickLevelNext()
+ {
+ if (_levelConfigs == null) return;
+ int maxLevel = _levelConfigs[_levelConfigs.Count - 1].level;
+ if (_previewLevel < maxLevel)
+ {
+ _previewLevel++;
+ UpdateLevelPreview();
+ }
+ }
+
+ private void OnClickLevelUp()
+ {
+ if (_previewLevel > 1)
+ {
+ _previewLevel--;
+ UpdateLevelPreview();
+ }
}
// ==================== 头像加载 ====================