cun
This commit is contained in:
@@ -23,6 +23,20 @@ public class GameManager : MonoSingleton<GameManager>
|
||||
public UserData user;
|
||||
public GameData gameData = new GameData();
|
||||
public Scene scene;
|
||||
|
||||
/// <summary>
|
||||
/// 头像更新事件(换了头像后触发,所有头像控件统一刷新)
|
||||
/// </summary>
|
||||
public event Action<Sprite> OnAvatarChanged;
|
||||
|
||||
/// <summary>头像字典(name → sprite),从 Resources/Avatar 加载</summary>
|
||||
private Dictionary<string, Sprite> avatarSpriteDict = new Dictionary<string, Sprite>();
|
||||
|
||||
/// <summary>触发头像更新事件</summary>
|
||||
public void TriggerAvatarChanged(Sprite sprite)
|
||||
{
|
||||
OnAvatarChanged?.Invoke(sprite);
|
||||
}
|
||||
public CameraShaker cameraShake;
|
||||
public Camera ZhuCam;
|
||||
|
||||
@@ -42,6 +56,43 @@ public class GameManager : MonoSingleton<GameManager>
|
||||
// });
|
||||
//#endif
|
||||
// }
|
||||
|
||||
/// <summary>
|
||||
/// 初始化头像缓存(从 Resources/Avatar 加载所有Sprite)
|
||||
/// </summary>
|
||||
public void InitAvatarCache()
|
||||
{
|
||||
avatarSpriteDict.Clear();
|
||||
var sprites = Resources.LoadAll<Sprite>("Avatar");
|
||||
foreach (var s in sprites)
|
||||
avatarSpriteDict[s.name] = s;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据名称获取头像 Sprite
|
||||
/// </summary>
|
||||
public Sprite GetAvatarSprite(string avatarName)
|
||||
{
|
||||
if (avatarSpriteDict.Count == 0) InitAvatarCache();
|
||||
avatarSpriteDict.TryGetValue(avatarName, out var sprite);
|
||||
return sprite;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更换头像:上传服务端 → 更新本地 → 触发全局刷新
|
||||
/// </summary>
|
||||
public void ApplyAvatar(string avatarUrl)
|
||||
{
|
||||
APIRequestList.UpdateAvatar(avatarUrl, (result) =>
|
||||
{
|
||||
user.BaseInfo.avatarUrl = avatarUrl;
|
||||
user.BaseInfo.avatarSprite = null;
|
||||
|
||||
var sprite = GetAvatarSprite(avatarUrl);
|
||||
TriggerAvatarChanged(sprite);
|
||||
});
|
||||
}
|
||||
|
||||
public void UpdataUserData(UserData user)
|
||||
{
|
||||
this.user = user;
|
||||
|
||||
Reference in New Issue
Block a user