using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; using static UnityEngine.Networking.UnityWebRequest; namespace ShotSimulator.UI { public class RankingItem : MonoBehaviour { public Sprite[] rankSprits; public Image rankImage; public Text rankText; public Image avatarImage; public Text userNameText; public Text scoreText; public void SetRankData(RankingData data) { if (data.rank >= 1 && data.rank <= 3) { rankImage.gameObject.SetActive(true); rankText.gameObject.SetActive(false); rankImage.sprite = rankSprits[data.rank - 1]; rankImage.SetNativeSize(); } else { rankImage.gameObject.SetActive(false); rankText.gameObject.SetActive(true); rankText.text = data.rank.ToString(); } if (data.avatarId == int.MinValue) { if (avatarImage) avatarImage.sprite = null; } else if (data.avatarId < 0) { if (data.avatarUrl != string.Empty) { MonoManager.GetInstance().StartCoroutine(LoadTexture2D(data.avatarUrl)); } } else { string path = "Textures/Avatar/"; if (data.avatarId < 7) path += "Player" + data.avatarId; else path += data.avatarId - 7; if (avatarImage) avatarImage.sprite = Resources.Load(path); } userNameText.text = data.userName; scoreText.text = data.score.ToString(); } public IEnumerator LoadTexture2D(string path) { UnityWebRequest request = UnityWebRequestTexture.GetTexture(path); yield return request.SendWebRequest(); if(request.result == Result.Success) { var texture = DownloadHandlerTexture.GetContent(request); Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f)); avatarImage.sprite = sprite; } else { Debug.LogWarning(request.result); } } public void Reset() { rankImage.gameObject.SetActive(false); rankText.gameObject.SetActive(false); avatarImage.sprite = null; userNameText.text = string.Empty; scoreText.text = string.Empty; } } }