Unity性能优化之Resources System

1.什么是Resources System

Resources System是Unity官方内置的一个资源管理系统,开发者可以将Asset资源放在一个或多个名为 Resources 的文件夹中,通过Resources System可以在Unity运行时加载或卸载Resource文件中的Objects.

2.关于Resources System的使用相关

1.官方强烈建议不要使用它

Resources System官方地址
理由一:使用Resources文件夹使得细粒度内存管理更加困难
理由二:资源文件夹的不当使用将增加应用程序的启动时间和构建的长度,随着资源文件夹数量的增加,管理这些文件夹中的资产变得非常困难
理由三:资源系统降低了项目向特定平台交付定制内容的能力,并消除了增量内容升级的可能性

2.如何适当的使用Resources System?

.在制作游戏原型时,Resources文件夹的便捷性使其成为快速原型的优秀系统。但是,当项目进入全面生产阶段时,应该取消对Resources文件夹的使用。
.Resources文件夹在一些琐碎的情况下可能很有用
        1.在项目的整个生命周期中都被使用的内容
        2.非内存密集型内容
        3.不太可能添加补丁或者不受平台和设备影响的内容
        4.于最小化引导的内容

3.当项目中Resources文件夹结构复杂,内容多会对应用造成什么影响?

1.内存增加,包体增加

  Resources文件夹中的资源都会被打包编译到包体中,文件变大,包体也跟着变大。

2.管理复杂度增加

  由于Resources资源结构复杂,在资源管理下的成本就会增加,同时内存管理的成本也会增加。

3.构建时间增加

  在Resources文件夹下的所有Asset和Objects都会被合并到一个序列化文件中,该序列化文件的合并过程用时会随着文件内容的增加而增加。
序列化文件的相关补充:这个序列化文件中还含有Metadata和Indexing Information信息,其中索引包括一个序列化查找树,可以通过给定的对象名称解析出对应文件的GUID和LocalID,也可以根据给出的字节偏移量,将对象定位在序列文件的正文中。

4.影响游戏的启动时间

在启动时,对Resources文件夹下的所有对象都需要进行Instance ID实例化。在大多数平台上,用于查找的数据结构是平衡查找树,其时间复杂度为O(nlog(n))。因此,索引加载时间随Resources文件夹内Object数量增长而高于线性增长。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值