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

扫一扫,访问微社区

开发者专栏

关注:1876

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

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

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

[yukuyoulei] UGUI打字机效果

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

52

主题

857

帖子

7400

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
44
蛮牛币
4036
威望
30
注册时间
2013-6-9
在线时间
1873 小时
最后登录
2017-9-25

七夕浪漫情人社区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日久生情
3529/5000
排名
700
昨日变化
3

31

主题

531

帖子

3529

积分

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

UID
133683
好友
50
蛮牛币
8687
威望
0
注册时间
2016-1-6
在线时间
713 小时
最后登录
2017-9-12

专栏作家蛮牛译员活力之星

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

回复 支持 反对

使用道具 举报

4四处流浪
394/500
排名
5131
昨日变化
35

0

主题

78

帖子

394

积分

Rank: 4

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

回复 支持 反对

使用道具 举报

排名
27
昨日变化

52

主题

857

帖子

7400

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
44
蛮牛币
4036
威望
30
注册时间
2013-6-9
在线时间
1873 小时
最后登录
2017-9-25

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

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
634/1000
排名
6073
昨日变化
7

11

主题

133

帖子

634

积分

Rank: 5Rank: 5

UID
152229
好友
0
蛮牛币
2459
威望
0
注册时间
2016-6-16
在线时间
286 小时
最后登录
2017-9-24
发表于 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++;
    }
}




回复 支持 反对

使用道具 举报

7日久生情
1657/5000
排名
1881
昨日变化
1

29

主题

544

帖子

1657

积分

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

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

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

回复 支持 反对

使用道具 举报

7日久生情
1657/5000
排名
1881
昨日变化
1

29

主题

544

帖子

1657

积分

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

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

回复 支持 反对

使用道具 举报

2初来乍到
114/150
排名
16495
昨日变化
18

0

主题

42

帖子

114

积分

Rank: 2Rank: 2

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

回复 支持 反对

使用道具 举报

排名
14247
昨日变化
12

0

主题

27

帖子

83

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

5熟悉之中
778/1000
排名
3031
昨日变化
3

7

主题

182

帖子

778

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

5熟悉之中
935/1000
排名
2225
昨日变化
11

5

主题

147

帖子

935

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

排名
23041
昨日变化
23

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
昨日变化

52

主题

857

帖子

7400

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
44
蛮牛币
4036
威望
30
注册时间
2013-6-9
在线时间
1873 小时
最后登录
2017-9-25

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

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

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

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

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

回复 支持 反对

使用道具 举报

7日久生情
1657/5000
排名
1881
昨日变化
1

29

主题

544

帖子

1657

积分

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

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

举例:

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

回复 支持 反对

使用道具 举报

排名
27790
昨日变化
29

0

主题

25

帖子

63

积分

Rank: 2Rank: 2

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

回复 支持 反对

使用道具 举报

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

本版积分规则

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