unity text打字机
时间: 2023-09-20 19:14:34 浏览: 98
效果实现:
1. 创建一个文本框(Text)对象,并给它添加一个Text组件。
2. 创建一个新的C#脚本,命名为“TypewriterEffect”。
3. 在TypewriterEffect中添加以下代码:
```
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TypewriterEffect : MonoBehaviour {
public float charsPerSecond = 0.2f; //打字时间间隔
private string words; //保存需要显示的文字
private bool isActive = false; //是否开始打字
private float timer; //计时器
private Text myText;
// Use this for initialization
void Start () {
myText = GetComponent<Text>();
words = myText.text;
myText.text = "";
}
// Update is called once per frame
void Update () {
if (isActive) {
timer += Time.deltaTime;
int charCount = (int)(timer * charsPerSecond);
if (charCount > words.Length) {
charCount = words.Length;
isActive = false;
}
myText.text = words.Substring(0, charCount);
}
}
//开始打字
public void StartTypewriter() {
isActive = true;
timer = 0;
}
//重置文字
public void ResetText() {
myText.text = "";
words = "";
}
//设置需要显示的文字
public void SetWords(string str) {
words = str;
}
}
```
这个脚本包含了以下几个方法:
Start:用于初始化,获取Text组件并保存需要显示的文字,然后将Text组件的文字设置为空。
Update:每帧更新,计算需要显示的字符数量,然后将需要显示的文字截取出来,设置给Text组件。
StartTypewriter:开始打字,将isActive设置为true,timer设置为0。
ResetText:重置文字,将Text组件的文字和需要显示的文字都设置为空。
SetWords:设置需要显示的文字,将需要显示的文字保存到words变量中。
4. 在需要应用打字机效果的地方,将TypewriterEffect脚本添加到Text组件上。
5. 在需要触发打字机效果的地方,调用StartTypewriter方法即可。例如:
```
TypewriterEffect typewriterEffect = GetComponent<TypewriterEffect>();
typewriterEffect.SetWords("需要显示的文字");
typewriterEffect.StartTypewriter();
```
这样,就可以实现一个简单的Text打字机效果了。
阅读全文