8.对象池介绍
对象池介绍
功能
在Unity中,对象的生成、销毁都需要性能开销,在一些特定的应用场景下需要进行大量重复物体的克隆,因此需要通过设计对象池来实现重复对象的使用完暂存,待需要时直接拿来用,而不是重新生成一个对象。本节设计的对象池有两种:GameObject对象池和非GameObject对象池,避免对重复使用的对象进行频繁的生成和销毁,减少性能消耗。
在Unity开发过程中有两种类型的实例,一类是GameObject,一类是普通的C#脚本。
GameObject对象池
通过管理GameObject身上继承Mono的脚本同时管理其背后的GameObject。
Unity中所有挂载到GameObject(Hierarchy窗口内的对象)上的脚本都要继承自MonoBehavior类来启用Unity特有的生命周期、协程等功能,且GameObject对象存在父子关系,在GameObject对象池中,除了需要对GameObject及其组件进行收容管理,还要对应调整其在Hierarchy的层级关系,GameObject是一个实实在在的游戏对象。
Object对象池
Object对象池只需对脚本类(C#中的Object对象)进行管理,其本质是一个类对象,也就是一个脚本对象,如状态机中的状态类,其并不存在于Hierarchy窗口中,不挂载在游戏物体上也不继承Mono,在命名空间中直接提供类型调用。
Unity独立游戏开发-程序框架1.0 文章被收录于专栏
Unity独立游戏开发