第一章,泛型对象池。

在Unity游戏开发中,为了优化性能,避免频繁创建和销毁对象导致的卡顿,引入了对象池的概念。对象池管理游戏对象,如组件和脚本,以实现循环利用。本文介绍了如何使用C#实现一个简单的泛型对象池,包括对象的添加、获取和判断是否为空的方法,适用于子弹、龙骨动画等资源的管理。高级版对象池可能包含更复杂的对象销毁策略。
摘要由CSDN通过智能技术生成

第一章,对象池

在写入游戏过程中,由于新手学习往往容易实现游戏策划的需求而忽略了优化,以至于编辑到移动端会出现卡帧掉帧的情况。所以需要引入一个对象池的概率。

所谓对象池即放对象的池子,在unity中所有组件可以看成一个对象,一个脚本是个对象,脚本加组件也可以看成一个对象,而对象池把这些都收集起来,需要调用的时候调用即可,不用频繁的动态生成与销毁。

对象池创建的思路有很多,包括网上我看到的,与实现方式。可是往往很多都不怎么好用,需要针对不同项目不同改进。而我实现的思路是把需要动态加载的对象用完之后不要销毁,放进对象池保存,等需要用的时候在拿出来用即可。

c#代码如下:

using System.Collections.Generic;
using UnityEngine;

public class ObjectPool <T> where T: Object
{
    public static Dictionary<string, ObjectItem<T>> itemList;

    public static void PushObject(string name, T gameObject)//放进一个对象
    {
        if (itemList == null) { itemList = new Dictionary<string, ObjectItem<T>>(); }
        if (!itemList.ContainsKey(name)) { itemList.Add(name, new ObjectItem<T>(name)); }     
        itemList[name].PushObject(gameObject);
    }

    p
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值