——个人学习笔记
对象池的使用原理,就是把一些类似的物体一次性生成一堆,然后设置未激活状态,然后使用就激活,不适用就放回对象池,再次设置未激活。能使用范围就是,要频繁地删除生成的对象。
- Gamemanager.cs(使用单例模式,可以看我的单例模式笔记,使用常用的那种泛型就行了,https://blog.csdn.net/weixin_43701019/article/details/90616323) ,下面以Tile对象池做例子,(新手tips:可能一下子放出太多代码会对新手不习惯,建议可以先看Start,看到调用了,在去找方法,然后方法开头的注释,自己画画逻辑。)
public class GameManager : MonoSingleton<GameManager>//单例模式(泛型)
{
//Tile池子
public Queue<GameObject> tilePool=new Queue<GameObject>();
//TilePrefab,(使用的时候更改Sprite就行)
public GameObject tilePrefab;
//生成对象的父位置
public Transform tileParent;
//可以手动设置属性
public GameSetting Advance;
//对象池里的对象数量
int initialSize = 60;
//总权值
float totalSum =0;
//Y的位置
float currentY = -5.0f;
protected override void Awake()
{
base.Awake();
}
void Start()
{
//获取权值
GetAllWeight();
//初始化对象池
GenerateTilePoll();
//激活对象池里的所有Tile物体
for (int i = 0; i < initialSize; i++)
{
GenerateTile();
}
}