原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2018/1009/56.html
在制作游戏的过程中,经常会有产生/销毁大量同类游戏对象的需求,例如游戏中的不断出现的敌人、不断刷新的宝箱及游戏中的一些特效,使用对象池就可以管理这些对象的产生和销毁。今天我们常州游戏开发工作室-幻天网络就来讨论一下对象缓冲区。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
/**
* 单例类,创建或者销毁窗体
*/
public class UIWindowManager {
private static UIWindowManager windowMag;
private static Dictionary<string, GameObject> windowCache = new Dictionary<string, GameObject>();
public static UIWindowManager GetInstance() {
if (windowMag == null) {
windowMag = new UIWindowManager();
}
return windowMag;
}
public GameObject OpenWindow(string windowName) {
if (windowCache.ContainsKey(windowName)) {
CloseWindow(windowName);
return null;
}
GameObject windowObject = Resources.Load(windowName) as GameObject;
GameObject prefabClone = GameObject.Instantiate(windowObject);
prefabClone.transform.parent = UIRoot.list[0].transform;
prefabClone.transform.localPosition = Vector3.zero;
prefabClone.transform.localScale = Vector3.one;
windowCache.Add(windowName, prefabClone);
return prefabClone;
}
public void CloseWindow(string windowName) {
if (windowCache.ContainsKey(windowName)) {
// Debug.Log(windowName);
GameObject.Destroy(windowCache[windowName]);
windowCache.Remove(windowName);
}
}
}
上篇:上一篇:Unity使用HDR实现天空盒
下篇:下一篇:Unity3D粒子系统被2D的NGUI或者UGUI遮挡的问题