ui基本完毕,修了一大把的bug
This commit is contained in:
@@ -94,6 +94,38 @@ public class playerMessagePrefab : MonoBehaviour
|
||||
await TryGetAvatarSpriteAsync(steamId, normalizedAvatarUrl);
|
||||
}
|
||||
|
||||
public static bool TryGetCachedAvatarSprite(string steamId, string avatarUrl, out Sprite sprite)
|
||||
{
|
||||
sprite = null;
|
||||
|
||||
string normalizedAvatarUrl = GameServer.Client.NetworkManager.NormalizeAvatarUrlForClient(avatarUrl);
|
||||
if (!string.IsNullOrWhiteSpace(normalizedAvatarUrl)
|
||||
&& AvatarCache.TryGetValue(normalizedAvatarUrl, out Sprite cachedByUrl)
|
||||
&& cachedByUrl != null)
|
||||
{
|
||||
sprite = cachedByUrl;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(steamId)
|
||||
&& AvatarCache.TryGetValue(steamId, out Sprite cachedBySteamId)
|
||||
&& cachedBySteamId != null)
|
||||
{
|
||||
sprite = cachedBySteamId;
|
||||
return true;
|
||||
}
|
||||
|
||||
Sprite diskSprite = TryLoadAvatarSpriteFromDisk(steamId, normalizedAvatarUrl);
|
||||
if (diskSprite != null)
|
||||
{
|
||||
CacheAvatarSpriteInMemory(steamId, normalizedAvatarUrl, diskSprite);
|
||||
sprite = diskSprite;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private async Task RefreshAvatarAsync(string steamId, string avatarUrl)
|
||||
{
|
||||
const int maxAttempts = 20;
|
||||
|
||||
Reference in New Issue
Block a user