unityzgy/Assets/Scripts/UIScripts/ThisProjectPublic/DynamicText.cs
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

73 lines
1.6 KiB
C#

using XFramework;
using UnityEngine.UI;
using UnityEngine;
using XFramework.Objects;
/// <summary>
/// ui面板通用的提示文字 0.5f内从小大大显示 显示2秒 2秒内逐渐消失
/// </summary>
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<Text>();
canvasGroup_this = this.GetComponent<CanvasGroup>();
RectTransform_this = this.GetComponent<RectTransform>();
}
/// <summary>
/// 显示提示文字
/// </summary>
/// <param name="msg">文字信息</param>
/// <param name="textColor">文字颜色</param>
/// <param name="anchordPos">文字位置</param>
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);
}
}
}