//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, December 28, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class HeadUpStorySign : HUDBehaviour
|
{
|
[SerializeField] float m_Duration = 1f;
|
float endTime = 0f;
|
|
public static void Display(Transform _target, Camera _camera)
|
{
|
var bubble = HeadUpStorySignPool.Require();
|
bubble.transform.SetParentEx(WindowCenter.Instance.uiRoot.bossShowCanvas.transform, Vector3.zero, Vector3.zero, Vector3.one);
|
bubble.SetActive(true);
|
|
bubble.Show(_target, _camera);
|
}
|
|
public virtual void Show(Transform _target, Camera _camera)
|
{
|
base.target = _target;
|
base.offset = Vector3.zero;
|
base.camera = _camera;
|
|
endTime = Time.time + m_Duration;
|
this.SetActive(true);
|
SyncPosition(true);
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
|
if (Time.time > endTime)
|
{
|
HeadUpStorySignPool.Recycle(this.gameObject);
|
}
|
}
|
|
}
|
|
public class HeadUpStorySignPool
|
{
|
static GameObjectPoolManager.GameObjectPool pool = null;
|
|
public static HeadUpStorySign Require()
|
{
|
if (pool == null)
|
{
|
var prefab = UILoader.LoadPrefab("HeadUpStorySign");
|
if (prefab != null)
|
{
|
pool = GameObjectPoolManager.Instance.RequestPool(prefab);
|
}
|
}
|
|
if (pool != null)
|
{
|
var instance = pool.Request();
|
return instance.GetComponent<HeadUpStorySign>();
|
}
|
else
|
{
|
return null;
|
}
|
}
|
|
public static void Recycle(GameObject _gameObject)
|
{
|
if (pool != null)
|
{
|
pool.Release(_gameObject);
|
_gameObject.transform.SetParent(null);
|
_gameObject.SetActive(false);
|
}
|
}
|
|
public static void Clear()
|
{
|
if (pool != null)
|
{
|
pool.Clear();
|
pool = null;
|
}
|
}
|
|
}
|
|
}
|