UGUI打字机效果实现核心就是使用String.Substring();方法进行截取显示。可以使用time进行控制用Times.deltaTime或者直接用InvokeRepeating()方法重复执行。
打字机效果第一种实现方式:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UItext : MonoBehaviour {
string str = "君不见黄河之水天上来,奔流到海不复回,君不见";
int I = 0;
public Text text;
// Use this for initialization
void Start () {
InvokeRepeating("ShowText",0,0.5f);
}
// Update is called once per frame
void Update () {
}
void ShowText()
{
if (I >= str.Length)
{
return;
}
else {
I += 1;
text.text = str.Substring(0,I);
text.color = Color.blue;
}
}
}
第二种实现方式;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TextTween : MonoBehaviour {
Text m_text;
string TextString;
float Timer=0f;
bool isFinish;
public float Speed=2f;
// Use this for initialization
void Start ()
{ m_text = GetComponent<Text> ();
TextString = m_text.text;
m_text.text = "";
}
// Update is called once per frame
void Update () {
if (m_text.text.Equals (TextString)) {
isFinish = true;
//字体播放结束 finish 执行 Finsh
}
else
{
m_text.text = TextString.Substring (0, (int)(Timer * Speed));
Timer += Time.deltaTime;
}
}
}