unity进阶学习笔记:对象池管理器

本文介绍了Unity中为了优化性能,通过对象池管理器来处理游戏物体的创建和销毁。当游戏物体不再需要时,不是立即销毁,而是存入对象池中,后续需要时再复用。对象池类使用栈数据结构,包含Push、Pop和Clear等操作。对象池管理器使用单例模式,管理不同类型的对象池,并提供Spawn和UnSpawn方法进行对象的获取与回收。
摘要由CSDN通过智能技术生成

unity中创建和销毁游戏物体都有较大的性能开销。因此,对于需要大量创建和销毁游戏物体的情况(如射击游戏中子弹不断生成和销毁),如果对每一个对象都进行创建和销毁会造成大量性能开销。为此,我们可以利用对象池进行对象的缓存和复用。

每当一个游戏物体要退出场景,我们不立刻将该对象销毁,而是将其储存到对象池里。当再需要出现同类对象时,我们先从对象池里获取之前存储的对象,如果对象池已空再创建新对象。

对象池类:

// object pool
public class PoolStack {
   
    public Stack<UnityEngine.Object> stack = new Stack<Object>();
    public int MaxCount = 100; // maximum objects in stack

    // push gameObject into the pool
    public void Push(UnityEngine.Object obj) {
   
        if (stack.Count < MaxCount) {
   
            stack.Push(obj);
        
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值