1.开启内存资源监测情况
在UI树的根节点挂上一个 GameScene 脚本,在 GameScene 脚本的 onLoad方法里添加 下面这一行代码
MemoryDetector.showMemoryStatus();
此时你会看到 左下角有 内存纹理的计算
2. 对场景自身携带的资源进行引用计数统计
在UI树的根节点挂上一个 GameScene 脚本,在 GameScene 脚本的 onLoad方法里添加 下面这一行代码
UILoader.retainScene(this.node);
3. 加载一个预制体资源,并在场景中显示
在UI树的根节点挂上一个 GameScene 脚本,在 GameScene 脚本的 添加一个 onLoaderPrefabClick 方法里添加 下面这一行代码
onLoaderPrefabClick () {
UILoader.loadRes("select", cc.Prefab, (prefab) => {
UILoader.instantiate(prefab, this.node, (node) => {
});
});
},
绑定事件后,点击加载资源,我们会看到
4. 销毁这个预制体创建出来的节点。
onLoad () {
this.node.on(cc.Node.EventType.TOUCH_START, () => {
cc.log("触发点击事件");
UILoader.destroy(this.node);
});
},
此时我们会看到资源已经释放了,并且和资源加载前大小一样,说明我们已经释放干净了,有人可能会说,你那不足以证明释放干净了。那么后面文章会进行相关的说明,现在不加以说明。
5. 更换Sprite纹理
在UI树的根节点挂上一个 GameScene 脚本,在 GameScene 脚本的 添加一个 onLoaderPrefabClick1 方法里添加 下面这一行代码
onLoaderPrefabClick1 () {
let spriteNode = this.node.getChildByName("icon_sprite");
UILoader.loadRes("gamename_103", cc.SpriteFrame, (spriteFrame) => {
UILoader.replaceSpriteTexture(spriteNode, spriteFrame);
})
},
此时我们能够看见,资源统计明显有变化。
5. 更换Button纹理
在UI树的根节点挂上一个 GameScene 脚本,在 GameScene 脚本的 添加一个 onLoaderPrefabClick2 方法里添加 下面这一行代码
onLoaderPrefabClick2 () {
let spriteNode = this.node.getChildByName("icon_button");
UILoader.loadRes("loginbackBtn", cc.SpriteFrame, (spriteFrame) => {
UILoader.replaceButtonTexture(spriteNode, spriteFrame, spriteFrame, spriteFrame, spriteFrame);
})
},
此时我们也可以看到纹理计算明显少了0.04M
后面还会进行更新 UILoader, 请有意者保持关注。
最后附上 UILoader 开源地址
https://github.com/1083921307/UILoader
博客地址:




