概述
大量预制的创建与销毁会带来很大性能的不必要消耗,利用对象池可以有效的减少此类问题
- 一个池子用来放置物体与存取物体
- 取物体的方法
- 放物体的方法
使用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(名称);
}
}
最后
以上就是拉长马里奥为你收集整理的设计模式-对象池的全部内容,希望文章能够帮你解决设计模式-对象池所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复