【Unity3D 打斗游戏开发】之三 简单实现对象池

本文介绍了Unity3D中对象池的原理,通过代码展示了如何创建和使用对象池,以减少频繁的对象创建和销毁带来的性能损耗。文章强调了对象的数据重置策略,并提及技术扩展,如通过调整对象位置而非禁用来降低渲染消耗,以及在退出时清理对象池以优化内存占用。
摘要由CSDN通过智能技术生成

关于对象池的概念网上很多资料都已经介绍过来了,而且网上也有大神写的插件PoolManager。我比较少使用,因为平时做的项目偏小型,所以比较排斥把各种插件放到项目里(个人比较崇尚精简主义)。而我更喜欢学习其原理方法,根据自己的需求去重新实现功能(去繁取简)。

对象池原理

在游戏中我们都知道像怪物、子弹和特效等是需要频繁使用的(创建和销毁)。那么,毋庸置疑这一过程是会消耗性能的,所以引用对象池技术的意思就是在游戏开始前预先初始化一个含一定数量对象的池子,当游戏中需要时就从池子中取,不需要时就放回池中。这样就能避免游戏中频繁的创建和销毁对象。

下面代码将简单实现一个对象池

using UnityEngine;
using System.Collections;

public class MyObjectPool<T> {
    // 方法的委托
    public delegate T CreateDelegate();
    private CreateDelegate dCreate;

    private T[] objList; // 使用数组存储存取速度快,减少内存碎片
    private int size = 0;
    private int poolSize = 1;

    /// <summary>
    /// 对象池初始化对象,size为对象池初始大小
    /// </summary>
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值