加载资源类

public class ResMgr : Singleton<ResMgr>
{
    //存储预制体列表
    private Hashtable m_Cache;

    public ResMgr()
    {
        m_Cache = new Hashtable();
    }

    //加载游戏预制体资源
    public GameObject Load(string path, ResType resType, bool isCache = false)
    {
        GameObject obj = null;
        if (m_Cache.Contains(path))
        {
            obj = m_Cache[path] as GameObject;
        }
        else
        {
            StringBuilder str = new StringBuilder();
            switch (resType)
            {
                case ResType.Effect:
                    str.Append("Prefab/Effect/");
                    break;
                case ResType.Role:
                    str.Append("Prefab/Role/");
                    break;
                case ResType.SceneUI:
                    str.Append("Prefab/SceneUI/");
                    break;
                case ResType.WinUI:
                    str.Append("Prefab/WinUI/");
                    break;
				case ResType.UIOther:
					str.Append("Prefab/UIOther/");
					break;
                default:
                    break;
            }
            str.Append(path);
           
            obj = Resources.Load(str.ToString())as GameObject;
            if (isCache)
            {
                m_Cache.Add(path, obj);
            }
        }
        return GameObject.Instantiate(obj);
    }
    public override void Dispose()
    {
        m_Cache.Clear();
        Resources.UnloadUnusedAssets();
    }

    //加载xml文本
    private string XMLPath = "Config";
    public TextAsset LoadConfigXML(string name)
    {
        return LoadXMLAsset(name, XMLPath);
    }

    public TextAsset LoadXMLAsset(string name, string path)
    {
        TextAsset textAsset = null;
        string loadPath = path + "/" + name;
        textAsset = Resources.Load(loadPath, typeof(TextAsset)) as TextAsset;

        if (textAsset == null)
        {
            Debug.LogError(loadPath + " is null");
            return null;
        }
        return textAsset;

    }

    //加载图片
    public Texture2D LoadImage(string name)
    {
        return LoadTexture(name, "UI/Icon/");
    }

    public Texture2D LoadTexture(string name, string path)
    {

        string loadPath = path + "/" + name;
        Texture2D tex = Resources.Load(loadPath, typeof(Texture2D)) as Texture2D;
        if (tex == null)
        {
            Debug.LogError("Texture2D " + name + " is not found in Resources");
        }

        return tex;

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值