Unity加载资源方法

Unity中的物体可以分为 资源和实例对象 两种,一种是需要实例化出来的,一种是不需要实例化出来的,例如 动画控制器(RuntimeAnimatorController),精灵(Sprite),音频资源(AudioClip),图片贴图(Texture2D)等...他们都是被UnityEngine 下的Object类包含的。

 

下面这个方法可以用来  加载以上不需要实例化的资源,

public class GenResourceFactory<T>:IBaseResourceFactory<T> where T:UnityEngine.Object
{

    protected Dictionary<string, T> factoryDic = new Dictionary<string, T>();
    protected string LoadPath;

    public T GetSingleResources(string resPath)
    {
       T res = default(T);

        string path = LoadPath + resPath;
        if (factoryDic.ContainsKey(resPath))
        {
            res = factoryDic[resPath];
        }
        else
        {
            res = Resources.Load<T>(path) ;

            factoryDic.Add(resPath, res);
        }

        if (res == null)
        {
            Debug.Log("无法加载" + path);
        }
        return res;
    }
}

 下面接口 适用于 上述工厂..

/// <summary>
/// 其他种类资源工厂  每种获取的工厂都不同,所以我们用泛型接口
/// </summary>
/// <typeparam name="T"></typeparam>
public  interface IBaseResourceFactory<T>
{
    T GetSingleResources(string resPath);
}

用工厂模式可以 提高 开发效率,减低耦合度,提高扩展性,方便后续修改http://www.runoob.com/design-pattern/factory-pattern.html...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值