开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:1575

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 882|回复: 14

[yukuyoulei] UGUI打字机效果

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

46

主题

821

帖子

6249

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
41
蛮牛币
1380
威望
30
注册时间
2013-6-9
在线时间
1530 小时
最后登录
2017-2-21

七夕浪漫情人社区QQ达人活力之星原创先锋认证开发者

QQ
发表于 2016-12-7 19:58:06 | 显示全部楼层 |阅读模式

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

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

x
今天策划大人提了个打字机效果的需求,文字还会变,写了个,扔这儿。

[C#] 纯文本查看 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UGUITypewriter : MonoBehaviour
{
	public float fSpeed = 0.1f;
	Text text;
	string sContent;
	void Start()
	{
		text = GetComponent<Text>();
		SetContent();
	}
	void SetContent()
	{
		sContent = text.text;
		curPos = 0;
		fDelta = 0;
	}

	float fDelta;
	int curPos = -1;
	void Update()
	{
		if (string.IsNullOrEmpty(sContent) && string.IsNullOrEmpty(text.text))
		{
			return;
		}
		if (!sContent.Contains(text.text))
		{
			SetContent();
			return;
		}
		if (curPos == sContent.Length)
		{
			return;
		}
		fDelta += Time.deltaTime;
		if (fDelta < fSpeed)
		{
			return;
		}
		fDelta -= fSpeed;

		curPos++;
		text.text = sContent.Substring(0, curPos);
	}
}

评分

参与人数 1鲜花 +5 收起 理由
煮粥侠 + 5 赞一个!

查看全部评分

本帖被以下淘专辑推荐:


回复

使用道具 举报

7日久生情
3026/5000
排名
1082
昨日变化
2

31

主题

523

帖子

3026

积分

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

UID
133683
好友
44
蛮牛币
6423
威望
0
注册时间
2016-1-6
在线时间
596 小时
最后登录
2017-2-22

专栏作家蛮牛译员活力之星锦衣玉食

QQ
发表于 2016-12-8 09:23:02 | 显示全部楼层
DoTween里面也有这个效果,当然,自己实现的话就省去了插件的空间,蛮好!
[发帖际遇]: CloudHu 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

3偶尔光临
203/300
排名
7177
昨日变化
8

0

主题

40

帖子

203

积分

Rank: 3Rank: 3Rank: 3

UID
144726
好友
0
蛮牛币
378
威望
0
注册时间
2016-4-6
在线时间
57 小时
最后登录
2017-1-17
发表于 2016-12-8 10:21:01 | 显示全部楼层
是不是那些字一个个掉下来的效果啊

回复 支持 反对

使用道具 举报

排名
27
昨日变化

46

主题

821

帖子

6249

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
41
蛮牛币
1380
威望
30
注册时间
2013-6-9
在线时间
1530 小时
最后登录
2017-2-21

七夕浪漫情人社区QQ达人活力之星原创先锋认证开发者

QQ
 楼主| 发表于 2016-12-8 10:52:16 | 显示全部楼层
神龙宋 发表于 2016-12-8 10:21
是不是那些字一个个掉下来的效果啊

打字机啊,一个字儿一个字儿的显示出来而已,UGUI想加这种动态效果还是蛮麻烦的

回复 支持 反对

使用道具 举报

4四处流浪
458/500
排名
6562
昨日变化
11

10

主题

102

帖子

458

积分

Rank: 4

UID
152229
好友
0
蛮牛币
1700
威望
0
注册时间
2016-6-16
在线时间
180 小时
最后登录
2017-2-20
发表于 2016-12-8 11:35:09 | 显示全部楼层

借用楼主的宝地:

[C#] 纯文本查看 复制代码
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class UGUITypewriter : MonoBehaviour 
{
    public float fSpeed = 0.1f;
    Text text;
    string sContent;
    int curPos;
    void Start()
    {
        text = GetComponent<Text>();
        SetContent();
    }
    void SetContent()
    {
        curPos = 0;
        sContent = text.text;
        text.text = string.Empty;
        InvokeRepeating("Typing", 0, fSpeed);
    }

    void Update()
    {
        if (!sContent.Contains(text.text))
        {
            CancelInvoke("Typing");
            SetContent();
        }
    }

    void Typing()
    {
        if (sContent.Length - 1 == curPos) CancelInvoke("Typing");
        
        text.text += sContent.Substring(curPos, 1);
        curPos++;
    }
}




回复 支持 反对

使用道具 举报

5熟悉之中
921/1000
排名
3627
昨日变化
24

13

主题

365

帖子

921

积分

Rank: 5Rank: 5

UID
69941
好友
0
蛮牛币
4301
威望
0
注册时间
2015-1-20
在线时间
279 小时
最后登录
2017-2-22
发表于 2016-12-9 11:35:30 | 显示全部楼层
感谢楼主分享,想问下为什么这一段最后使用fDelta-=fSpeed而不是 fDelta=0;
[C#] 纯文本查看 复制代码
if (fDelta < fSpeed)
        {
            return;
        }
        fDelta -= fSpeed;

[发帖际遇]: 煮粥侠 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

5熟悉之中
921/1000
排名
3627
昨日变化
24

13

主题

365

帖子

921

积分

Rank: 5Rank: 5

UID
69941
好友
0
蛮牛币
4301
威望
0
注册时间
2015-1-20
在线时间
279 小时
最后登录
2017-2-22
发表于 2016-12-9 11:37:33 | 显示全部楼层
仔细想想好像fDelta-=fSpeed和 fDelta=0 的结果也不会差太多?不知道这样写有什么特别的原因吗?谢谢~
[发帖际遇]: 煮粥侠 乐于助人,奖励 3 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

排名
32558
昨日变化
29

0

主题

19

帖子

32

积分

Rank: 1

UID
190623
好友
0
蛮牛币
56
威望
0
注册时间
2016-12-8
在线时间
9 小时
最后登录
2017-2-16
发表于 2016-12-9 18:12:54 | 显示全部楼层
很厉害的感觉,以后如果遇到能借鉴一下

回复 支持 反对

使用道具 举报

排名
12395
昨日变化
7

0

主题

30

帖子

85

积分

Rank: 2Rank: 2

UID
186001
好友
0
蛮牛币
118
威望
0
注册时间
2016-11-22
在线时间
20 小时
最后登录
2016-12-28
发表于 2016-12-12 07:48:40 | 显示全部楼层
不错,学习~~~

回复

使用道具 举报

4四处流浪
356/500
排名
6490
昨日变化
61

4

主题

132

帖子

356

积分

Rank: 4

UID
158249
好友
1
蛮牛币
678
威望
0
注册时间
2016-7-22
在线时间
94 小时
最后登录
2017-2-22
发表于 2016-12-12 10:30:45 | 显示全部楼层
这个好 之前只会用NGUI的打字效果来着

回复 支持 反对

使用道具 举报

4四处流浪
385/500
排名
5951
昨日变化
47

5

主题

81

帖子

385

积分

Rank: 4

UID
167044
好友
0
蛮牛币
523
威望
0
注册时间
2016-9-6
在线时间
161 小时
最后登录
2017-2-21
发表于 2016-12-12 10:48:20 | 显示全部楼层
厉害了。。

回复

使用道具 举报

排名
19860
昨日变化
14

0

主题

21

帖子

42

积分

Rank: 1

UID
136823
好友
0
蛮牛币
101
威望
0
注册时间
2016-2-17
在线时间
9 小时
最后登录
2016-12-23
QQ
发表于 2016-12-15 12:26:51 | 显示全部楼层
zanyige,henhao

回复

使用道具 举报

排名
27
昨日变化

46

主题

821

帖子

6249

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
41
蛮牛币
1380
威望
30
注册时间
2013-6-9
在线时间
1530 小时
最后登录
2017-2-21

七夕浪漫情人社区QQ达人活力之星原创先锋认证开发者

QQ
 楼主| 发表于 2016-12-16 16:57:24 | 显示全部楼层
煮粥侠 发表于 2016-12-9 11:37
仔细想想好像fDelta-=fSpeed和 fDelta=0 的结果也不会差太多?不知道这样写有什么特别的原因吗?谢谢~ ...

个人习惯,-= fSpeed和 = 0的唯一区别就在于主线程发生卡顿的时候,是否会快速补帧。

举例:
用-=时,如果主线程卡了1秒,当卡顿结束后,这个效果会像快动作一样,迅速的显示出后面的若干个字来,如果是=0的话,卡了一秒这种事就像没发生一样,只显示下一个字。

在这个功能里没有特别重要的意义,但是在某些功能中是有作用的。

回复 支持 反对

使用道具 举报

5熟悉之中
921/1000
排名
3627
昨日变化
24

13

主题

365

帖子

921

积分

Rank: 5Rank: 5

UID
69941
好友
0
蛮牛币
4301
威望
0
注册时间
2015-1-20
在线时间
279 小时
最后登录
2017-2-22
发表于 2016-12-17 16:48:22 | 显示全部楼层
yukuyoulei 发表于 2016-12-16 16:57
个人习惯,-= fSpeed和 = 0的唯一区别就在于主线程发生卡顿的时候,是否会快速补帧。

举例:

明白了,十分感谢!
[发帖际遇]: 一个袋子砸在了 煮粥侠 头上,煮粥侠 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

排名
32558
昨日变化
29

0

主题

22

帖子

36

积分

Rank: 1

UID
206538
好友
0
蛮牛币
68
威望
0
注册时间
2017-2-14
在线时间
10 小时
最后登录
2017-2-20
发表于 6 天前 | 显示全部楼层
谢谢分享了,,打字机效果偶尔可能还真的会用的上呢
[发帖际遇]: 张三的_mmSRv 乐于助人,奖励 3 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

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

本版积分规则

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