游戏蛮牛学习群(纯技术交流,不闲聊):539178957
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

蛮牛译馆

关注:636

当前位置:游戏蛮牛 技术专区 蛮牛译馆

查看: 2775|回复: 27

[Unity教程] Unity UI C#自写入文本效果

[复制链接]  [移动端链接]
排名
9178
昨日变化
3

263

主题

301

帖子

1552

积分

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
159865
好友
9
蛮牛币
3981
威望
0
注册时间
2016-8-1
在线时间
626 小时
最后登录
2018-3-8

蛮牛译员

发表于 2017-9-27 16:52:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 manew_JR 于 2017-9-27 16:57 编辑

Unity UI C#自写入文本效果

使用Unity UI C#实现文本自写入效果如下:
ezgif-1-8f1f2561b2.gif






更新后代码:
[C#] 纯文本查看 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// © 2017 TheFlyingKeyboard
// theflyingkeyboard.net
//Writes text letter by letter with time step
public class SelfWritingText : MonoBehaviour {
    [SerializeField] private Text textToUse;
    [SerializeField] private bool useThisText = false;
    [SerializeField] private bool useThisTextText = false;
    [SerializeField] private float letterPause = 0.1f;
    [TextAreaAttribute(4, 15)]
    [SerializeField] private string textToShow;
    private string message;
    private void Start()
    {
        message = textToShow;
        if (useThisText)
        {
            textToUse = GetComponent<Text>();
        }
        if (useThisTextText)
        {
            message = textToUse.text;
        }
        textToUse.text = "";
        StartCoroutine(TypeText(textToUse, message, letterPause));
    }
    private IEnumerator TypeText(Text text, string textText, float timePause)
    {
        for(int i = 0; i < textText.Length; i++)
        {
            text.text += textText[i];
            yield return 0;
            yield return new WaitForSeconds(timePause);
        }
    }
    public void WriteText(Text newText = null, string newTextToShow = null, float newLetterPause = -1.0f)
    {
        if(newText != null && newTextToShow != null && newLetterPause > 0.0f)
        {
            StartCoroutine(TypeText(newText, newTextToShow, newLetterPause));
            return;
        }
        if(newText!= null && newTextToShow != null)
        {
            StartCoroutine(TypeText(newText, newTextToShow, letterPause));
            return;
        }
        if (newText != null && newLetterPause > 0.0f)
        {
            StartCoroutine(TypeText(newText, message, newLetterPause));
            return;
        }
        if (newTextToShow != null && newLetterPause > 0.0f)
        {
            StartCoroutine(TypeText(textToUse, newTextToShow, newLetterPause));
            return;
        }
        if (newTextToShow != null)
        {
            StartCoroutine(TypeText(textToUse, newTextToShow, letterPause));
            return;
        }
        if (newLetterPause > 0.0f)
        {
            StartCoroutine(TypeText(textToUse, message, letterPause));
            return;
        }
    }
}






旧代码:
[C#] 纯文本查看 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// © 2017 TheFlyingKeyboard
// theflyingkeyboard.net
//Writes text letter by letter with time step
public class SelfWritingText : MonoBehaviour {
    [SerializeField] private Text textToUse;
    [SerializeField] private bool useThisText = false;
    [SerializeField] private bool useThisTextText = false;
    [SerializeField] private float letterPause = 0.1f;
    [TextAreaAttribute(4, 15)]
    [SerializeField] private string textToShow;
    private string message;
    private void Start()
    {
        message = textToShow;
        if (useThisText)
        {
            textToUse = GetComponent<Text>();
        }
        if (useThisTextText)
        {
            message = textToUse.text;
        }
        textToUse.text = "";
        StartCoroutine(TypeText());
    }
    IEnumerator TypeText()
    {
        for(int i = 0; i < message.Length; i++)
        {
            textToUse.text += message[i];
            yield return 0;
            yield return new WaitForSeconds(letterPause);
        }
    }
}




原文标题:Unity UI C# Self Writing Text
原文链接:http://theflyingkeyboard.net/unity/unity-ui-c-self-writing-text/







回复

使用道具 举报

7日久生情
4205/5000
排名
2661
昨日变化
1

5

主题

3111

帖子

4205

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
209186
好友
5
蛮牛币
5254
威望
0
注册时间
2017-3-1
在线时间
591 小时
最后登录
2018-8-14
发表于 2017-9-27 17:36:08 | 显示全部楼层
这个不错,学习收藏了

回复 支持 反对

使用道具 举报

2初来乍到
127/150
排名
12663
昨日变化
6

0

主题

36

帖子

127

积分

Rank: 2Rank: 2

UID
100341
好友
0
蛮牛币
143
威望
0
注册时间
2015-5-14
在线时间
27 小时
最后登录
2018-1-23
发表于 2017-9-29 11:46:58 | 显示全部楼层
谢谢楼主分享

回复

使用道具 举报

6蛮牛粉丝
1349/1500
排名
2643
昨日变化
3

1

主题

489

帖子

1349

积分

Rank: 6Rank: 6Rank: 6

UID
220310
好友
1
蛮牛币
2304
威望
0
注册时间
2017-5-2
在线时间
359 小时
最后登录
2018-6-13
发表于 2017-9-29 14:21:48 | 显示全部楼层
感谢分享

回复

使用道具 举报

5熟悉之中
505/1000
排名
4395
昨日变化
2

0

主题

31

帖子

505

积分

Rank: 5Rank: 5

UID
210361
好友
1
蛮牛币
1878
威望
0
注册时间
2017-3-7
在线时间
170 小时
最后登录
2018-6-27
发表于 2017-10-13 09:55:48 | 显示全部楼层
为什么我运行会报错呢
[发帖际遇]: 丁丁当当 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

7日久生情
1908/5000
排名
842
昨日变化
4

0

主题

122

帖子

1908

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
88589
好友
1
蛮牛币
2346
威望
0
注册时间
2015-4-2
在线时间
694 小时
最后登录
2018-8-16
发表于 2017-10-20 09:50:16 | 显示全部楼层
学习收藏了~

回复

使用道具 举报

5熟悉之中
923/1000
排名
2363
昨日变化
9

0

主题

114

帖子

923

积分

Rank: 5Rank: 5

UID
247653
好友
0
蛮牛币
2874
威望
0
注册时间
2017-10-9
在线时间
257 小时
最后登录
2018-8-17
发表于 2017-11-6 13:58:44 | 显示全部楼层
谢谢楼主分享
[发帖际遇]: 15094315503 捡了钱没交公 蛮牛币 降了 2 . 幸运榜 / 衰神榜

回复

使用道具 举报

2初来乍到
146/150
排名
17129
昨日变化
8

3

主题

72

帖子

146

积分

Rank: 2Rank: 2

UID
254054
好友
0
蛮牛币
133
威望
0
注册时间
2017-11-13
在线时间
33 小时
最后登录
2018-1-26
发表于 2017-11-13 22:30:46 | 显示全部楼层

回复

使用道具 举报

4四处流浪
300/500
排名
10286
昨日变化
1

17

主题

90

帖子

300

积分

Rank: 4

UID
244768
好友
1
蛮牛币
2543
威望
0
注册时间
2017-9-19
在线时间
89 小时
最后登录
2018-8-16
发表于 2017-11-15 11:21:19 | 显示全部楼层

回复

使用道具 举报

排名
19986
昨日变化
6

0

主题

5

帖子

40

积分

Rank: 1

UID
255695
好友
0
蛮牛币
117
威望
0
注册时间
2017-11-22
在线时间
13 小时
最后登录
2017-12-6
发表于 2017-11-24 09:21:35 | 显示全部楼层
谢谢楼主分享

回复

使用道具 举报

3偶尔光临
280/300
排名
16301
昨日变化
3

0

主题

203

帖子

280

积分

Rank: 3Rank: 3Rank: 3

UID
254038
好友
0
蛮牛币
177
威望
0
注册时间
2017-11-13
在线时间
40 小时
最后登录
2018-7-30
发表于 2017-11-27 22:10:54 | 显示全部楼层

感谢分享

回复

使用道具 举报

4四处流浪
443/500
排名
6488
昨日变化
1

6

主题

101

帖子

443

积分

Rank: 4

UID
229553
好友
0
蛮牛币
92
威望
0
注册时间
2017-6-30
在线时间
148 小时
最后登录
2018-8-16
发表于 2017-12-6 13:30:12 | 显示全部楼层
学习一下!!

回复

使用道具 举报

3偶尔光临
293/300
排名
13112
昨日变化
6

1

主题

98

帖子

293

积分

Rank: 3Rank: 3Rank: 3

UID
208886
好友
0
蛮牛币
223
威望
0
注册时间
2017-2-27
在线时间
135 小时
最后登录
2018-8-17
发表于 2017-12-8 14:43:07 | 显示全部楼层
谢谢你的分享,起初没想过这个东西,以为很复杂,但是看了你代码后我知道我想多了,,,,,
[发帖际遇]: 举个栗子Hk 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

4四处流浪
312/500
排名
9694
昨日变化
3

1

主题

149

帖子

312

积分

Rank: 4

UID
221927
好友
0
蛮牛币
636
威望
0
注册时间
2017-5-13
在线时间
58 小时
最后登录
2018-5-1
QQ
发表于 2017-12-19 10:57:48 | 显示全部楼层
{:104:}{:104:}{:104:}{:104:}

回复 支持 反对

使用道具 举报

排名
17129
昨日变化
8

0

主题

40

帖子

98

积分

Rank: 2Rank: 2

UID
258618
好友
0
蛮牛币
81
威望
0
注册时间
2017-12-8
在线时间
24 小时
最后登录
2018-1-5
发表于 2017-12-20 15:22:03 | 显示全部楼层

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表