예제 #1
0
    public static Res GetRes(string resName, string assetBundleName = null)
    {
        Res res = SharedLoadedReses.Find(loadedAsset => loadedAsset.Name == resName);

        if (res != null)
        {
            res.Retain();
            return(res);
        }

        if (resName.StartsWith("resources://"))
        {
            res = new ResourceRes(resName);
        }
        else
        {
            res = new AssetRes(resName, assetBundleName);
        }

        res.Load();
        SharedLoadedReses.Add(res);
        res.Retain();

        return(res);
    }
예제 #2
0
        /// <summary>
        /// 卸载资源
        /// </summary>
        public override void Unload()
        {
            m_mainRes.RemoveNotification(OnReceiveNotification);
            m_mainRes.Unload();
            m_mainRes = null;

            m_listener = null;

            Recycle2Cache();
        }
예제 #3
0
        /// <summary>
        /// 创建资源
        /// </summary>
        /// <param name="data"></param>
        public static Res Create(ResData data)
        {
            switch (data.type)
            {
            case ResType.Bundle:
                return(BundleRes.Allocate(data));

            case ResType.Asset:
                return(AssetRes.Allocate(data));

            case ResType.Resource:
                return(ResourceRes.Allocate(data));

            default:
                return(null);
            }
        }
예제 #4
0
 public void Init(string assetName, ResNotificationListener listener)
 {
     m_mainRes  = ResPoolSystem.Get <ResourceRes>(ResData.AllocateResource(assetName), true);
     m_listener = listener;
 }