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;
}
}
}