牛骨文教育服务平台(让学习变的简单)
博文笔记

Unity 3D 对象池

创建时间:2016-04-06 投稿人: 浏览次数:627

原理:从一个固定的池中重用对象,来提升性能和内存的使用,而不是一个一个的分配内存在释放它们。
当你需要创造大量重复的对象,而且经常使用这些对象,你就要考虑使用对象池了,因为反复创建销毁就是一个内存反复分配与释放的过程,很容易产生内存碎片。
在主机和移动端与PC相比内存稀缺,我们都希望游戏能够更加稳定,而不能有效的管理内存,此时大量的内存碎片是致命的。

操作步骤:

(1):分配一块内存空间用来生成对象池,也就是生成一个一定大小的容器(数组,List,栈,或者字典都可以)

(2):首先游戏运行时初始化(Instantiate)一定数量的目标物体,用来反复使用;其次,将Active属性设置为false,起初不需要显示在游戏场景中;

(3):将每个生成的游戏物体插入到对象池中。

(4):待需要时,遍历对象池,找到“未使用”的预制对象并调用初始化函数Init(),初始化预制物体的属性(transform主件中得position,scale,rotation等),并将active属性设置为true,使用状态设置为true,表示该物体正在被使用。

(5):游戏物体死亡后,需将使用状态设置为false,active设置为false,重置目标物体的属性。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。