U4S2SL2——复用数据
U4S2SL2——复用数据
使用预设体对象可能存在的内存浪费问题
对于只用不变的数据,以面向对象的思想去声明对象类是可能存在内存浪费的问题的
我们以子弹对象为例
在以前,子弹对象挂载子弹脚本,子弹脚本包含子弹诸如移动速度和攻击力等数据,然后通过Resources
等手段来在场景上创建子弹预设体
这样每个子弹都会有自己的子弹类对象,每个对象都会占用自己的内存,然而这些子弹脚本的数据其实都是相同且不变的
因此没有必要让子弹对象都分配多个的内存,我们完全可以让所有子弹对象共享一个子弹数据
1 | using UnityEngine; |
利用ScriptableObject数据对象更加节约内存
对于不同对象,使用相同数据时,我们可以使用ScriptableObject来节约内存
1 | using UnityEngine; |
1 | using UnityEngine; |
再为预设体关联这个BulletInfo
,就可以在生成多个预设体但仍然共同使用一个BulletInfo
对象
我们可以通过下面的代码来观察是否所有的子弹都被加速(都被加速则说明它们共享相同的数据)
1 | using UnityEngine; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!