using XFramework;
using UnityEngine.UI;
using UnityEngine;
using XFramework.Objects;
///
/// ui面板通用的提示文字 0.5f内从小大大显示 显示2秒 2秒内逐渐消失
///
public class DynamicText : MonoBehaviour
{
Text text_thisText;
float hideTime;
float scale;
CanvasGroup canvasGroup_this;
RectTransform RectTransform_this;
void Awake()
{
InitEvent();
}
void InitEvent()
{
text_thisText = this.GetComponent();
canvasGroup_this = this.GetComponent();
RectTransform_this = this.GetComponent();
}
///
/// 显示提示文字
///
/// 文字信息
/// 文字颜色
/// 文字位置
public void ShowPromptText(string msg,Color textColor,Vector2 anchordPos)
{
text_thisText.text = msg;
text_thisText.color = textColor;
scale = 0.1f;
hideTime = 3;
canvasGroup_this.alpha = 1;
RectTransform_this.anchoredPosition = anchordPos;
this.transform.localScale = new Vector3(scale, scale, 1);
}
private void FixedUpdate()
{
if (scale < 1)//先由小到大显示文字
{
scale += Time.fixedDeltaTime * 2;
this.transform.localScale = new Vector3(scale, scale, 1);
}
else//显示完成后文字上升 逐渐隐藏
{
RectTransform_this.anchoredPosition +=Vector2.up * Time.fixedDeltaTime * 50;
if (canvasGroup_this.alpha > 0f)
canvasGroup_this.alpha -= Time.fixedDeltaTime / hideTime;
}
if (hideTime > 0)//计时
{
hideTime -= Time.fixedDeltaTime;
}
else//超出计时器隐藏
{
ObjectPool.Instance.Destroy(this.gameObject);
}
}
}