//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, September 14, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class HeadUpNamePool
|
{
|
static Dictionary<int, GameObjectPoolManager.GameObjectPool> pools = new Dictionary<int, GameObjectPoolManager.GameObjectPool>();
|
|
public static HeadUpName Require(HeadUpName.Pattern _pattern)
|
{
|
GameObjectPoolManager.GameObjectPool pool = null;
|
var poolKey = (int)_pattern;
|
if (!pools.ContainsKey(poolKey))
|
{
|
var prefab = UILoader.LoadPrefab(StringUtility.Contact("HeadUpName_", _pattern));
|
if (prefab != null)
|
{
|
pool = GameObjectPoolManager.Instance.RequestPool(prefab);
|
pools[poolKey] = pool;
|
}
|
}
|
else
|
{
|
pool = pools[poolKey];
|
}
|
|
if (pool != null)
|
{
|
var instance = pool.Request();
|
var headUpName= instance.GetComponent<HeadUpName>();
|
headUpName.enabled = true;
|
headUpName.SetActive(true);
|
return headUpName;
|
}
|
else
|
{
|
return null;
|
}
|
}
|
|
public static void Recycle(HeadUpName _headUpName)
|
{
|
var pattern = _headUpName.pattern;
|
GameObjectPoolManager.GameObjectPool pool;
|
if (pools.TryGetValue((int)pattern, out pool))
|
{
|
_headUpName.enabled = false;
|
_headUpName.SetActive(false);
|
pool.Release(_headUpName.gameObject);
|
}
|
|
}
|
|
public static void Clear()
|
{
|
foreach (var key in pools.Keys)
|
{
|
var pool = pools[key];
|
if (pool != null)
|
{
|
pool.Clear();
|
}
|
}
|
pools.Clear();
|
}
|
|
|
}
|
|
}
|