-
- using QFramework;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
-
-
- public class TestResKit : MonoBehaviour
- {
- ResLoader mResLoader = ResLoader.Allocate();
- private void Awake()
- {
-
- }
-
- ///
- /// 每一个需要加载资源的单元(脚本,界面)申请一个ResLoader
- /// ResLoader 本身会记录该脚本加载过的资源
- ///
-
-
-
- ///
- /// 通过 LoadSync 同步加载资源
- /// 只需要传入资源名就行,不需要传入AssetBundle名
- ///
- void Start()
- {
- this.GetComponent
().sprite= mResLoader.LoadSync("forest_of_whispers_verdant_woods_tiles") ; - }
-
- private void OnDestroy()
- {
- // 释放所有本脚本加载过的资源
- // 释放只是释放资源的引用
- // 当资源的引用数量为 0,会进行真正的卸载操作
- mResLoader.Recycle2Cache();
- mResLoader = null;
- }
- }
使用方法就是,把这个脚本贴在需要加载资源的controller上。
用它来加载资源!这样如果自己没有了,资源就会自己回收自己
然后别忘了在什么地方吧这个初始化一下
ResMgr.Init();
另外一个,就是加载一些数据或者图片集,可以这样做:
- public Sprite GetGoalLevelSprite(string id)
- {
- var spriteAtlas = mResLoader.LoadSync
(GameConfig.GoalMapAtlasPath); - var icon = spriteAtlas.GetSprite(id);
- mResLoader.AddObjectForDestroyWhenRecycle2Cache(icon);
- return icon;
- }
- public class ConfigSystem : BaseSystem, IConfigSystem
- {
- private ResLoader mResLoader = ResLoader.Allocate();
-
- private cfg.Tables tables;
- public cfg.Tables Tables => tables;
-
- public override void RegisterEvents()
- {
- tables = new cfg.Tables(file =>
- JSON.Parse(Resources.Load
("TextAsset/JsonConfig/" + file).text)); -
- }
-
- public cfg.LevelMapSet GetMapSet(string id)
- {
- cfg.LevelMapSet result;
- try
- {
- result = Tables.TbLevelMap.Get(id);
- }
- catch (Exception e)
- {
- Debug.LogError($"TbLevelMap id: {id} {e}");
- throw;
- }
-
- return result;
- }
- }