资源第一篇 =》bundle包

news2024/11/15 4:19:03

简介

bundle包主要用于游戏资源的模块化功能,以便更好的管理游戏资源、优化游戏资源的加载、优化游戏包体的大小,提高游戏体验。我们可以根据实际的场景,把游戏资源进行合理的分包。

bundle类型

cocos包分为内置bundle自定义bundle

内置bundle 是cocos默认分配的bundle,一般有 internal、resouces、main、startScene。

自定义bundle  是开发者把一个目录设置为bundle。

内置bundle

  1. internal  bundle该bundle 开发者一般不会修改到,其是cocos默认存在的,主要存放cocos的内置资源 effects 和Materials。优先级默认:11
  2. resouces bundle:我们可以理解为是一个存放公共资源bundle。
    1. 创建:在cocos的资源管理器中,默认是没有resouces 目录的,当我们创建了一个resouces时,则该目录会被cocos识别为一个内置resouces bundle。
    2. 打包情况:在resouces bundle下的所有资源都会被打包到 resouces bundle下。
    3. 应用:一般我们会把公共资源存放到该目录下,例如一个资源被多个bundle包使用时,我们应包该资源存放到resouces 目录下。
    4. 优先级:默认是 8
  3. main bundle:这是游戏的主包,其范围是所有在asssets目录下且不在任何bundle目录的资源。不需要创建,打包时会自动生成的一个bundle。
    1. 创建: 不需要创建,打包时cocos会自动生成的一个bundle
    2. 打包情况:只会打包场景静态引用到的游戏资源,未静态引用到的资源不会打包
    3. 应用:一般我们把主场景的游戏资源、不是公共的资源存放到该目录下。
    4. 优先级:默认是 7

注意:

1,不在任何bundle中的场景,都会打包到main包中,且场景静态引用到的资源,都会打包到main包中(忽略优先级),优先级问题后面会具体分析。

2,main包与其他bundle的区别:main包只会打包静态引用到的资源,其他bundle会把bundle目录下的所有资源都会打包进去。(忽略优先级)

自定义的bundle

开发者定义的bundle包 ,即为自定义的bundle。在bundle包中的所有资源都会被打包。

这里对main包与其他bundle区别做个总结:main  只会打包场景依赖的资源。其他bundle会打包目录下与依赖的资源。依赖资源指的是场景与预制体静态引用到的资源。

bundle 的优先级

为了解决单个资源被多个bundle 使用,而不造成资源冗余问题,即出现了bundle 的优先级配置技术。bundle 的默认优先级共有 1-10个优先级。资源打包时,会被优先打包到优先高的bundle中。

注意:

资源会被打包到优先级高的bundle,是指被预制体、场景静态引用到的资源。

例如:

1,bundleA 的场景scene1 静态引用了资源a,bundleA的优先级是6。

2,bundleB的场景 scene1 静态引用了资源a,bundleB的优先级是5。

资源a 最终会被打包 bundleA中,bundleB会在config.json 的redirect 重定向字段中记录资源a的uuid与所依赖bundle的deps的索引。通过deps索引找到bundle,再通过uuid找到对应的资源。

优先级设置

同个资源被多个bundle 依赖使用,优先级相同时,则多个bundle中都会含有该资源。其他情况则会被打包到优先级高的bundle中。

bundle包加载顺序

cocos 默认的自动加载顺序,如下图:

所以对应公共资源,即多个bundle都会使用到的资源,我们建议把该资源存放到 resources 目录下,因为整个cocos项目资源加载流程是:优先加载 internal bundle,再加载resouces bundle,最后加载main bundle。这是cocos固定的加载顺序,无法改变。

应用问题

  1. 当多个bundle包都会使用的资源,我们应该把该资源存放到公共的resouces 包中。
  2. 当某个功能模块所使用到的资源,其他地方并不会使用到,则应在开启一个独立的独立的bundle。
  3. 当我们的首个场景资源过多,我们为了避免进入首场景的时间过长,可以把首场景资源分出一个bundle。
  4. 当bundleA、bundleB 都是静态使用了同一个资源时,bundleA的优先级大于 bundleB,则该资源会被打包到 bundleA中。 使用BundleB时,需要先加载bundleA。(应规避这种情况)。

bundle 的加载与释放

内置bundle(internal、resouces、main)cocos会对其自动加载。对于自定义bundle,我们需要手动加载。

官方文档

bundle 包跨项目使用

因为bundle包是一个完全独立的包,含有资源和脚本,所以我们可以跨项目使用。但是需要注意:引擎版本需要相同,因为不同的引擎,其bunlde包的结构、加载、解析等可能不同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

七、装饰器模式

装饰器模式(Decorator Pattern)是一种结构型设计模式,允许在不改变对象自身的情况下,动态地向对象添加新功能。它通过将功能附加到对象的方式来增强其行为,提供了一种灵活的替代方案来使用子类扩展功能。 主要组成部分…

python 检测端口是否开放

python的socket库可以检测端口是否开放。 import socket; sock socket.socket(socket.AF_INET, socket.SOCK_STREAM) result sock.connect_ex((127.0.0.1,80)) if result 0:print "Port is open" else:print "Port is not open" 这里sock.connect_ex()方…

机器人领域顶刊TRO最受欢迎的TOP 50文章盘点

介绍 众所周知,TRO是机器人领域的绝对顶刊,每一篇文章都是质量极高的。最近在看TRO官网的时候,发现官网给出了在TRO发布文章中最收欢迎的TOP 50 paper list。下面来看看都有哪些文章?是不是和您想的一样?下面文章的顺…

Ollama—87.4k star 的开源大模型服务框架!!

这一年来,AI 发展的越来越快,大模型使用的门槛也越来越低,每个人都可以在自己的本地运行大模型。今天再给大家介绍一个最厉害的开源大模型服务框架——ollama。 项目介绍 Ollama 是一个开源的大语言模型(LLM)服务工具…

【redis】认识redis和分布式系统

文章目录 认识 redisredis 的主要功能实现数据库实现缓存实现消息中间件 分布式系统单机架构为什么数据多了主机就难以应对 ?分布式系统 认识 redis redis 的主要功能 用来在内存中存储数据 定义变量不就是在内存中存储数据吗?为什么还需要 redis 来向…

如何看待AI技术对人们生活的影响?

人工智能(AI)技术对人们生活的影响是多方面的,既有积极的一面,也存在一些需要关注的问题。以下是对AI技术在生活中影响的综合看法: 积极影响: 提高效率:AI技术在各行各业中的应用大大提高了工作…

14,子查询语句嵌套

1.1 查询研发部门的所有员工信息 #步骤1: 查询研发部门的 did SELECT did FROM t_department WHERE dname 研发部; #步骤2: 嵌套子查询,查询员工信息 SELECT * FROM t_employee WHERE did (SELECT did FROM t_department WHERE dname 研发部); 1.1 查询和白露性别和部门相…

Splashtop 在 Gartner Peer Insights™ 远程桌面软件客户之声评选中荣获“卓越表现者”称号

2024年9月4日 加利福尼亚州库比蒂诺 远程解决方案提供商 Splashtop 今天宣布,在最新发布的《2024年 Gartner Peer Insights™ 远程桌面软件客户之声》报告中,Splashtop 荣获“卓越表现者”称号。进入“卓越表现者”象限,意味着 Splashtop 的…

基于 Python 的 LIF 模型:探索神经元同步与小世界网络

在神经科学中,理解神经元之间的同步行为对解释大脑的功能非常重要。而泄漏积分发放(Leaky Integrate-and-Fire, LIF)模型作为一种经典的神经元模型,广泛应用于模拟神经元的膜电位变化以及脉冲发放。本篇博客将带你通过Python代码&…

大眼橙X7D Ultra和当贝D6X Pro选哪个好?三千价位,谁的性价比更高

在投影仪市场的激烈竞争中,3000多价位一款新产品问世,大眼橙X7D Ultra作为新款备受瞩目,与其对应的同价位佼佼者当贝D6X Pro都各自以其独特的优势吸引着消费者的目光。今天就来说说这款新品大眼橙X7D Ultra对比当贝D6X Pro有哪些不同之处&…

iOS 18beta/正式版升级办法分享

随着科技的飞速发展,苹果公司每一次的iOS系统更新都为我们带来了前所未有的便捷与惊喜。如今,iOS 18的发布再次激起了广大iPhone用户的升级热情。为了让大家能够顺利、高效地升级到这一全新系统,今天我将为大家分享几种实用的升级iOS 18的方法…

展会回顾 | SunTorque智能扭矩系统亮相GAF2024展览会,收获满满

9月,一个收获的季节, GAF 2024全球紧固—连接—装配技术大会暨展览会就在这样一个美好的季节中,在苏州花桥国际博览中心完美落幕。这场汇聚了全球顶尖技术与创新理念的盛会,不仅吸引了来自全国各地的制造商、科技巨头及行业精英&a…

电脑桌面整理怎么弄?分享8款桌面整理软件,轻松拿捏桌面美化!

电脑桌面是我们日常工作和学习中最常接触到的地方,但随着时间的推移,桌面上往往会堆积越来越多的文件和图标。这不仅让桌面看起来杂乱无章,也使得寻找特定文件变得困难,从而影响了工作和学习的效率。那么,如何有效整理…

Embedding模型提升效果的方法之二:SimCSE

0. 前言 SimCSE是通过对比学习的方式缓解预训练模型的各向异性问题,各向异性的产生原因在上一篇文章中已有介绍。SimCSE是2021年出的,后面出的 embedding 模型几乎都使用了对比学习来缓解预训练语言模型的各向异性问题。前面介绍的几篇文章无一例外使用…

1-2宿主环境

什么是宿主环境 指的是程序运行所必须的依赖环境。Android系统和ios系统是两个不同的宿主环境,安卓版的app是不能在ios系统上运行的。 小程序的宿主环境 🍕🍕🍕 -手机微信是小程序的宿主环境 通信的主体 🍔&…

使用百度飞桨PaddleOCR进行OCR识别

1、代码及文档 代码:https://github.com/PaddlePaddle/PaddleOCR?tabreadme-ov-file 介绍文档:https://paddlepaddle.github.io/PaddleOCR/ppocr/overview.html 2、依赖安装 在使用过程中需要安装库,可以依据代码运行过程中的提示安装。…

高效实用的网站ICP备案查询接口

随着互联网的日益发展,对于网站的监管变得越来越重要。为了更好地管理和监督互联网上的网站,官方要求所有在中国境内的网站都需要进行ICP备案。因此,ICP备案不仅是法律要求,也是衡量一个网站是否正规的重要标志之一。为了便于开发…

开题报告撰写的四大难点与应对策略

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 对于每个即将进入毕业论文阶段的学生来说,开题报告是一道必经的门槛。开题报告不仅决定了你的论文方向,还对后续的研究和写作起到重要的引导作用。 然而,许多学生在撰写…

什么是车端、站端、电池端换电连接器?

材料选择与导电性能 换电连接器首先需要承受大电流、高电压的传输,因此其材料选择至关重要。为了确保电力传输的高效与稳定,大多数换电连接器采用高导电性材料,如铜材或更先进的合金材料。这些材料不仅具有优异的导电性能,还能在…

pdf在线转换成word免费版,一键免费转换

在日常的学习和办公中,PDF文件和Word文档是我们离不开的两种最常见的文件,而PDF与Word文档之间的转换成为了我们日常工作中不可或缺的一部分。无论是为了编辑、修改还是共享文件,掌握多种PDF转Word的方法都显得尤为重要。很多小伙伴关心能不能…