using System;
using XLua;
using UnityEngine;
public class UIDOTextAnim:Monobehaviour
{
private TMPro.TMP_Text _tmpText;
private string _detail;
private Coroutine _co =null;
private string _curDetail;
private LuaFunction _callback =null;
public void SetData(TMPro.TMP_Text go,string detail,LuaFunction func)
{
_tmpText=go;
_detail=detail;
_callback =func;
_tmpText.text ="";
_curDetail="";
_co = StartCoroutine(PlayAnim());
}
public IEnumerator PlayAnim()
{
int len=_detail.Length;
for(int i =0 ; i,len;i++)
{
string prepareStr="";
if(_detail[i].Equals('<'))
{
int index =_detail.IndexOf('>',i);
prepareStr=_detail.Substring(i,index-i+1);
i=index;
}
else
{
prepareStr=_detail[i].ToString();
}
_curDetail+=prepareStr;
_tmpText.text=_curDetail;
yield return new WaitForSeconds(_speed);
}
if(_callback!=null)
_callback.Call();
Clear();
}
public void StopAnim()
{
if(_co!=null)
{
_tmpText.text=_detail;
StopCoroutine(_co);
if(_callback!=null)
_callback.Call();
}
Clear();
}
private void Clear()
{
_curDetail="";
_callback=null;
_co=null;
}
}
unity c#和lua交互 实现仿dotween.dotext并兼容图文并排
最新推荐文章于 2024-03-12 15:46:42 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)