千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  IT问答库  >  unity基础知识

Unity中的对象池技术

发布:qyf 2022-09-29 13:46

Unity中的对象池技术

推荐答案

Unity中的对象池技术

  1.对象池简单定义

  同学您好,对象池是一种Unity经常用到的内存管理服务,针对需要经常生成消失的对象,作用在于可以减少创建每个对象的系统开销。我们在对象需要消失的时候不Destroy而是SetActive(false),然后放入池子中(Queue),当需要再次显示一个新的对象的时候,先去池子中看有没有隐藏的对象,有就取出SetActive(true),若池子里没有可用的则再Instantiate。

  2.使用对象池的原因

  在Unity游戏开发的过程中经常会创建一些新的对象,如果数量较少还可以接受,如果创建的新对象数量庞大,那么对内存而言是一个极大的隐患。例如射击游戏当中,每发射一颗子弹,都要创建一个新的子弹对象,那么子弹是数量庞大,可想而知一场游戏当中会创建多少这样的新对象,那么如果这些子弹创建之后都对游戏起着关键且持续性的作用也无可厚非,问题是子弹发射完成之后,几秒之后就不再拥有任何的意义,一般会将它自动的隐藏,也就是我们所说的SetActive(false),因此大量的非活跃对象出现在游戏场景当中。

  由于对象池中的对象只是SetActive(false)了,并非真正销毁了,所以一般运用于游戏中经常用到或需大量生成的物体。并不能将所有对象都用此技术,如若不然便是得不偿失了。

  3.创建并使用一个简单对象池

  首先我们先生成一个对象池的class,里面的内容就很简单,首先有一个Queue用来存放池子中的对象,然后实现两个方法,一个取对象,一个放对象。取对象的时候,若池子中有可用对象则取出一个,若没有则Instantiate一个;放对象即将对象SetActive(false)并且放入池子中。

最新问答资讯

01 unity用什么编程语言?unity学习难度大吗

学习 unity 语言
6020 人关注

02 python容易学吗?学好python有什么好处?

学习 python 工作 培训
5389 人关注

03 html是什么语言?html学习难吗?

学习 html 语言 可以
5062 人关注

04 c语言难学吗?c语言学好要多久?

语言 技术 学习
4733 人关注

06 学好平面设计要多久?报速成班靠谱吗?

平面 设计 学习 时间
4238 人关注

相关问题

unity用什么编程语言?unity学习难度大吗

目前各大领域对unity这一编程语言有着具体的要求,会unity可轻松...

Unity中如何使用代码切换场景

同学你好,Unity中如何使用代码切换场景?在Unity中肯定会用到切...

UnityHub中提示许可证过期了怎么办?

同学您好,在使用Unity的过程中,我们经常会遇到一个提示:您没...

Unity中使用代码激活/取消激活某个游戏对象的方法

同学您好,在Unity中取消激活某个游戏物体非常简单,只需要在属...

Unity四元数与欧拉角之间转换

normalized;将方向向量转换为四元数Quaternion rotation =Quater...

Unity中的对象池技术

同学您好,对象池是一种Unity经常用到的内存管理服务,针对需要...

测一测
你知道多少IT梗