• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

游戏开发

Unity3D-对象管理缓冲池

原创内容,转载请注明原文网址: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遮挡的问题