- 用户指南
- 资源商店 (Asset Store)
- 资源服务器 (Asset Server)(仅限团队许可证)
- 缓存服务器(仅限团队许可证)
- 幕后场景
- 创建游戏
- 运行时实例化预设 (Prefabs)
- 变换 (Transforms)
- 物理
- 添加随机的游戏元素
- 粒子系统(Particle Systems)
- Mecanim 动画系统
- 旧动画系统
- 导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))
- Sound (音频侦听器)
- 游戏界面元素
- 多玩家联网游戏
- iOS 开发入门
- Android 开发入门
- Blackberry 10 开发入门
- Metro:入门指南
- 本地客户端开发入门
- FAQ
- Advanced
- Vector Cookbook
- 资源包(仅限专业版)
- Graphics Features
- 资源数据库 (AssetDatabase)
- 构建播放器管道
- 分析器(仅限专业版)
- 光照贴图快速入门
- 遮挡剔除(仅限专业版)
- 相机使用技巧
- 运行时加载资源
- 通过脚本修改源资源
- 用程序生成网格几何体
- 富文本
- 在 Unity 工程 (Project) 中使用 Mono DLL
- 事件函数的执行顺序
- 移动优化实用指南
- Unity XCode 工程结构
- 优化图形性能
- 减少文件大小
- 理解自动内存管理
- 平台依赖编译
- 泛型函数
- 调试
- 插件(专业版/移动版特有功能)
- 文本场景文件格式(仅限专业版)
- 流媒体资源
- 启动时运行编辑器脚本代码
- 网络模拟
- VisualStudio C 集成
- 分析
- 检查更新
- 安装多版本 Unity
- 故障排除
- Unity 中的阴影
- Unity 中的 IME
- 对集成显卡进行优化
- 网络播放器 (Web Player) 部署
- 使用网络播放器中的信任链系统
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
管理资源相关性
资源包中的任何既定资源可能与其他资源相关。例如,一个模型可能包含会依次使用纹理和着色器的材质。您也可将资源的所有相关性一起添加到资源包中。但是,不同资源包中的多个资源可能都与一个常用的其他资源集相关(例如,多栋不同的建筑模型可能使用相同的砖块纹理)。如果有对象使用的每个资源包都包含独立的共享相关性副本,则将在加载资源包时创建多余的资源实例。这将浪费内存空间。
为避免此类浪费,可将共享的相关性分离至独立的资源包,并只从其资源需要此类相关性的任何资源包中引用相关性。首先,需要调用 BuildPipeline.PushAssetDependencies 来启用此引用功能。然后,需要构建包含已引用相关性的资源包。接下来,再次调用 PushAssetDependencies,再构建一个资源包,它引用第一个资源包中的资源。继续调用 PushAssetDependencies 可引入其他级别的相关性。引用级别存储在堆栈上,以便可使用相应的 BuildPipeline.PopAssetDependencies 函数返回至某级别。推送和弹出调用需通过添加构建之前发生的初始推送进行平衡。
运行时,需要加载包含相关性的资源包,然后再加载引用这些相关性的任何其他资源包。例如,您需要加载共享纹理的资源包,然后再加载引用这些纹理的独立的材质资源包。
注意,如果预计需要重新构建属于相关性链的资源包,则需先启用 BuildAssetBundleOptions.DeterministicAssetBundle 选项再进行构建。这可确保每次重新构建资源包时用于验证资源的内部 ID 值都相同。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论