Unity之对象池(单例对象池和泛型对象池)

本文探讨了游戏开发中提高性能的重要手段——对象池,特别是Unity环境下的对象池实现,包括单例和泛型两种模式。通过对象池可以减少CPU因频繁创建和销毁对象产生的负担,虽然会占用更多内存,但在移动平台优化中常被接受。文中提供了具体的代码示例和使用方法。
摘要由CSDN通过智能技术生成

众所周知,游戏开发中内存和性能一直是影响用户游戏体验的至关重要的两个因素,这次说一说对象池的概念。

对象池意义是将游戏中反复创建销毁的对象进行多次利用,从而避免大量对象的销毁与创建而造成CPU的负担。缺点是占用了更多的内存,但凡事都没有最好的解决办法,在移动平台上针对游戏的优化基本偏向于牺牲空间换取时间,所以以下两种对象池从本质上是为了回收对象服务的,废话不多说,直接上代码。

using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic;
/// <summary>
/// 泛型非单例池,代码简洁,通用性广泛
/// </summary>
public class MyPool <T> where T : class {
	private Action <T> mReset;							//重置对象的委托
	private Func <T> mNew;								//创建新对象的委托
	private Stack <T> stack;								//存放对象的池子,用List等动态数组也可以,推荐泛型数组
	public MyPool (Func <T> mNew, Action <T> mReset = null) {
		this.mNew = mNew;
		this.mReset
  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值