位置: 编程技术 - 正文
推荐整理分享Unity中的对象池用法(unity对象池优缺点),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity3d对象池,unity对象池优缺点,u3d对象池,unity对象管理,unity对象管理,u3d对象池,u3d对象池,unity对象的材质,内容如对您有帮助,希望把文章链接给更多的朋友!
在游戏开发过程中,有时候需要频繁的创建相同的游戏物体(例如,子弹、炮弹等),刚开始学习游戏脚本编写时的做法是:反复的Instantiate去实例化游戏物体,当不需要时再Destory掉。然而这种做法是相当耗费资源的。当然,肯定有优化的方法,那就是我们接下来要讲的“对象池”。对象池,顾名思义就是有很多游戏对象的池子,它保存着当前不需要使用到但是却随时会被使用到的游戏对象。
对象池的结构:1、一个池子,用来存放我们的游戏物体 pool
2、一个可以在池子里取物体的公有的静态方法 GetObject
3、一个可以将使用完的物体放回池子的公有静态方法 ReturnObject
接下来就是对上面的三个结构的类型定义了:
1、由于在对象池中可能会有很多种类型的物体,而且每种类型的游戏物体又可能有多个,所以, 我们将pool的类型定义为Dictionary<string, ArrayList>,前面的string为物体的类型,后面的数 组就可以用来保存相同类型的游戏物体了。也就是说,这个Dictonary的实例就是一个对象池。
2、GetObject是从对象池里获取游戏物体的,所以它需要有一个参数(string type)来指定我们要 获取的对象是什么类型的,接着获取到这个对象之后还需要对这个对象的position和rotation进 行初始化,所以还需要两个参数(Vector3 position)和(Quaternion quat)。
3、ReturnObject是把我们使用完的对象放回对象池中,所以我们只需要一个参数,即当前要放入 对象池的物体。
说了那么多,下面直接上代码:
这样就可以当我们要使用一个对象时直接使用 ObjectPool.GetObject去对象池取,而使用完一个对象之后就再使用ObjectPool.ReturnObject将对象放回池子中。
版权声明:本文为博主原创文章,未经博主允许不得转载。
unity中被瞄准的对象显示血条或子物体(原理) 如图鼠标放在终点的cube显示出Sphere;这个可以用来做瞄准物体显示血条,在端游中经常看见的功能代码如下:usingUnityEngine;usingSystem.Collections;publicclassCub
unity 读取xml 信息 1、首先在unity工程中Resources/XML目录下创建xml文件:xmls.xml;如:?xmlversion=1.0encoding=utf-8?rootparentname=Lilychildname=L/childchildname=Lapple/childchildname=L大/chil
Unity shader 官网文档全方位学习(一) What??Shader,看起来好高级的样子,是的,这是Unity中高级进阶的必备。因此,兄弟我就在此记下我学习官网的一些心得。此为一。主要介绍些SurfaceShaders
标签: unity对象池优缺点
本文链接地址:https://www.jiuchutong.com/biancheng/369204.html 转载请保留说明!友情链接: 武汉网站建设