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