天天看点

Unity之设计模式:单例模式和对象池模式

1. 单例模式

单例模式原则:

只能有一个实例。

必须自己创建自己。

必须给所有其他对象提供这一实例。

目的:第一条保证仅有一个实例(私有化构造函数),第二、三条保证提供一个访问它的全局访问点(提供一个供访问的公共方法/属性)。

优点:避免一个全局使用的类被频繁的创建与销毁。

2. 对象池模式

目的:需要频繁的创建和销毁的物体,比如怪兽、金币、障碍物... 频繁的创建和销毁非常耗费资源,不如游戏一开始就创建出来一堆,先隐藏起来,要使用的时候取消隐藏(从池子中取出),不使用了再隐藏(放回池子)。

案例:结合单例模式,做一个道具生成和销毁对象池。要求主池子掌控所有物体的生成和销毁(主池子只有一个),子池子提供共有的方法和特征(取出、放回)。

1)提前把道具的预制体做好,放在资源文件夹下。

Unity之设计模式:单例模式和对象池模式

 2)写子池子逻辑:从子池子中取出、放回子池子、放回所有物体

3)写主池子逻辑,管理所有子池子。

继续阅读