news 2026/6/12 22:15:42

祖传项目二开快上线了,却还有很多旧的资源,怎么办?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
祖传项目二开快上线了,却还有很多旧的资源,怎么办?

点击上方亿元程序员+关注和星标

引言

哈喽大家好,欢迎小伙伴提供的素材:

亿哥晚上好,上次压缩了PNG图片后,图片资源还是非常大。

仔细研究了一下,发现项目里面居然还有很多没用到的祖传资源!

游戏快要上线了,项目里却还有很多旧的资源,怎么办?

通常这样的情况出现于项目的二次开发阶段或者界面效果不好频繁更换的情况。

由于界面的布局发生变化,图片没办法直接覆盖替换,一不小心就有可能会导致旧资源遗忘在项目里,造成“泄漏”。

我们把遗忘的资源删掉不就好了?

是的,前提是要知道哪些资源是已经没被引用了!

言归正传,本期一起来看看,如何在Cocos游戏开发中,自定义插件查看资源被什么资源引用

本文源工程可在文末获取,小伙伴们自行前往。

直接上实例

客官请留步,倒杯茶,咱们本期直接上实例,废话最后再说。

1.创建插件

想要自定义插件查看资源被什么引用,首先要创建我们的插件,通过菜单扩展->创建扩展打开扩展创建面板,选择一个空白模板进行创建并启用插件。

添加个消息findReferences和快捷键ctrl+shift+f

2.插件原理

每个导入项目的资源(图片、音频、prefab、脚本等)都会自动分配一个uuid

这个uuid用于在项目中唯一标识该资源。

通常uuid会在资源文件或者资源的meta文件中。

如上图Main.sceneuuid,或者是在下图的Main.scene.meta文件中:

原理很简单,就是获取当前资源的uuid,然后再去查找其他所有资源,如果其他资源文件的数据中包含了当前资源的uuid,说明当前资源被引用。

3.插件流程

开始->获取选中的资源的uuid->遍历asset目录所有的资源->判断uuid是否在遍历资源的数据中->结束

  • 获取选中的资源的uuidconst selectedUuids = Editor.Selection.getSelected("asset");

  • 遍历asset目录所有的资源:const allAssets = await Editor.Message.request('asset-db', 'query-assets', { pattern: 'db://assets/**/*' });

  • 判断uuid是否在遍历资源的数据中:let assetFile = fs.readFileSync(assetInfo.file, 'utf-8');通过fs模块读取文件内容然后判断是否包含选中资源的uuid

4.效果演示

在插件目录,安装依赖npm install和构建插件npm run build

选中图片资源,按下crtl+shift+f

选中脚本资源,按下crtl+shift+f

整体预览如下:

温馨提示

  • 以上插件功能仅显示选中资源的被引用情况,要查询所有资源的小伙伴可自行修改扩展遍历所有图片资源。

  • 插件仅查找资源被其他资源引用情况,代码中动态加载的资源,需要自行扩展(检索接口或配置)。

  • 除了Bundle包中(包括resources文件夹),没被依赖的资源不会被打到包中。

  • 工具检索是需要的,但是也需要人工对资源进行辨别,特别在上线前,保证不误删在用资源。

结语

以上就是如何查看资源被什么资源引用的全部内容,如有不对,还请小伙伴们指出,欢迎更多的小伙伴进行投稿(素材、文章,硬币等等),感谢支持!

小伙伴们在游戏开发中还遇到哪些有趣的事情呢?

本文源工程可通过私信发送resfinder获取,更多不实用资源可通过阅读原文获取。


我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《打螺丝闯关》《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》《方块掌机经典》大家可以自行点击搜索体验。

实不相瞒,想要个爱心!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

知识付费专栏

你知道和不知道的微信小游戏常用API整理,赶紧收藏用起来~

100个Cocos实例

8年主程手把手打造Cocos独立游戏开发框架

和8年游戏主程一起学习设计模式

从零开始开发贪吃蛇小游戏到上线系列

点击下方灰色按钮+关注。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 7:43:32

大数据 ETL 项目的规划与实施步骤

大数据ETL项目的规划与实施步骤:从数据乱麻到分析宝藏的全流程指南 关键词:大数据ETL、数据抽取、数据转换、数据加载、项目实施、数据质量、流程优化 摘要:本文以“搭积木建数据工厂”为类比,用通俗易懂的语言拆解大数据ETL项目的…

作者头像 李华
网站建设 2026/6/11 22:28:12

24、私有互联网地址分配:策略与实践

私有互联网地址分配:策略与实践 1. 引言 在本文中,企业被定义为自主运营使用 TCP/IP 网络的实体,尤其负责确定该网络内的寻址计划和地址分配。本文主要探讨私有互联网的地址分配问题。这种分配方式允许企业内部所有主机之间以及不同企业的所有公共主机之间实现完整的网络层…

作者头像 李华
网站建设 2026/6/10 12:24:26

Foldseek 终极指南:快速掌握蛋白质结构比对工具

Foldseek 终极指南:快速掌握蛋白质结构比对工具 【免费下载链接】foldseek Foldseek enables fast and sensitive comparisons of large structure sets. 项目地址: https://gitcode.com/gh_mirrors/fo/foldseek 在当今生物信息学研究中,蛋白质结…

作者头像 李华
网站建设 2026/6/10 12:25:27

ComfyUI零基础入门:30分钟创建你的第一个应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 设计一个面向初学者的ComfyUI教程项目,生成一个简单的个人博客网站。功能包括:1. 主页展示文章列表;2. 文章详情页;3. 关于页面。要求…

作者头像 李华
网站建设 2026/6/11 21:44:05

QLVideo终极指南:macOS视频文件管理的完整解决方案

QLVideo终极指南:macOS视频文件管理的完整解决方案 【免费下载链接】QLVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https://gitcode.com/gh_m…

作者头像 李华
网站建设 2026/6/12 13:44:45

我发现AsyncLocalStorage内存涨,后来用end()及时释放

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 目录我和Node.js的相爱相杀日常 Node.js到底是个啥玩意? Node.js的超能力展示 实战场景:我用Node.js做了…

作者头像 李华