Unity3D-对象池技术

什么是对象池
对象池定义:对象池就存放需要被反复调用资源的一个空间,当一个对象回大量生成的时候如果每次都销毁创建会很费时间,通过对象池把暂时不用的对象放到一个池中(也就是一个集合),当下次要重新生成这个对象的时候先去池中查找一下是否有可用的对象,如果有的话就直接拿出来使用,不需要再创建,如果池中没有可用的对象,才需要重新创建,利用空间换时间来达到游戏的高速运行效果,在FPS游戏中要常被大量复制的对象包括子弹,敌人,粒子等
废话不多说直接上代码
Icontrol
using UnityEngine;
using System.Collections;
///
/// 挂载对象:不挂载
/// 作用:接口类,方便其他脚本继承此接口
/// 注意:
///
public interface IControl
{
//生成游戏对象的方法
void Spawn();
//销毁游戏对象
void UnSpwan();
}
SubPool
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
///
/// 挂载对象:不挂载
/// 作用:对象池类。
/// 注意:
///
public class SubPool
{
//对象池里面存放场景中需要的游戏物体
List pool = new List ();
//要创建的游戏物体的预设体
GameObject prefab;
//返回预设体的名字,预设体的名字和对象池的名字相同
//在管理对象池的类里面,可以通过预设体的名字找到相对应的对象池
public string Name {
get {
return prefab.name;
}
}
//构造方法
public SubPool (GameObject mPrefab)
{
prefab = mPrefab;//传递预设体参数
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值