用户头像的加载
- 创建使用Resources加载图片的脚本,用来加载头像
- 在得到用户信息时,已经把用户信息存储到GameMdeol中,用户名、金币数、头像从GameModel中直接加载
ResourcesManager
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ResourcesManager
{
/// <summary>
/// 保存用户的头像
/// 根据名字保存 string为用户名
/// </summary>
private static Dictionary<string, Sprite> nameSpriteDic = new Dictionary<string, Sprite>();
public static Sprite GetSprite(string iconName)
{
if (nameSpriteDic.ContainsKey(iconName))//查找用户名是否在字典中
{
return nameSpriteDic[iconName];
}
else
{
Sprite[] sprites = Resources.LoadAll<Sprite>("headIcon");//获取所有的头像
//头像名字组成为 字符串_数字 数字就为头像数组的下标 返回值为string数组
string[] nameArr = iconName.Split('_');
int index = int.Parse(nameArr[1]);//nameArr[1] 得到头像名字的数字,作为下标
Sprite temp = sprites[index];//获取用户的头像
nameSpriteDic.Add(iconName,temp);//添加到头像字典中
return temp;
}
}
}
加载用户信息
using Protocol.Code;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MainPanel : MonoBehaviour
{
#region 字段
private Image headIcon;
private Text txtUserName;
private Text txtCoinCount;
private Button btn_Rank;
private Button btn_Bank;
private Button btnStand;
private Button btnOnline;
#endregion
#region Unity回调
private void Awake()
{
Init();
}
#endregion
#region 方法
/// <summary>
/// 初始化
/// </summary>
private void Init()
{
headIcon = transform.Find("mask/headIcon").GetComponent<Image>();
txtUserName = transform.Find("txtUserName").GetComponent<Text>();
txtCoinCount = transform.Find("txtCoinCount").GetComponent<Text>();
btn_Rank = transform.Find("btn_Rank").GetComponent<Button>();
btn_Rank.onClick.AddListener(()=>
{
//向服务器获取排行榜
NetMsgCenter.Instance.SendMsg(OpCode.Account,AccountCode.GetRankList_CRES,null);
//显示排行榜界面
EventCenter.Broadcast(EventDefine.ShowRankListPanel);
});
btn_Bank = transform.Find("btn_Bank").GetComponent<Button>();
btnStand = transform.Find("btnStand").GetComponent<Button>();
btnOnline = transform.Find("btnOnline").GetComponent<Button>();
///加载用户信息
//获取存储用户信息中的金币数
txtCoinCount.text = Models.GameModel.userDto.Coin.ToString();
//获取存储用户信息中的用户名
txtUserName.text = Models.GameModel.userDto.UserName;
//加载用户头像
headIcon.sprite = ResourcesManager.GetSprite(Models.GameModel.