设计模式-对象池

大量预制的创建与销毁会带来很大性能的不必要消耗,利用对象池可以有效的减少此类问题


  1. 一个池子用来放置物体与存取物体
  2. 取物体的方法
  3. 放物体的方法

使用UnityEngine;
使用System.Collections;
使用System.Collections.Generic;
公共类GameObjectPool:MonoBehaviour {
List <GameObject> pools = new List <GameObject>();
private GameObjectPool(){} //单例模式
私人静态GameObjectPool实例;
public static GameObjectPool GetInstance(){
if(instance == null){
instance = new GameObject(“GameObjectPool”)。AddComponent <GameObjectPool>();
}
返回实例;
}
//取物体的方法
public GameObject Get(GameObject name){
        //没有则实例化新的
if(pools.Count == 0){
作为GameObject返回实例化(名称,Vector3.zero,Quaternion.identity);
}其他{
//取出对象池里面的第一个元素
GameObject obj = pools [0];
obj.SetActive(真);
pools.Remove(OBJ);
返回obj;
}
}
//放物体的方法
public void Put(GameObject name){
name.SetActive(假);
pools.Add(名称);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值