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

扫一扫,访问微社区

开发者专栏

关注:1702

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

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

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

[yukuyoulei] UGUI打字机效果

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

51

主题

839

帖子

6915

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
43
蛮牛币
2745
威望
30
注册时间
2013-6-9
在线时间
1703 小时
最后登录
2017-5-29

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

31

主题

528

帖子

3317

积分

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

UID
133683
好友
47
蛮牛币
7644
威望
0
注册时间
2016-1-6
在线时间
664 小时
最后登录
2017-5-30

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

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

回复 支持 反对

使用道具 举报

3偶尔光临
292/300
排名
6037
昨日变化
68

0

主题

64

帖子

292

积分

Rank: 3Rank: 3Rank: 3

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

回复 支持 反对

使用道具 举报

排名
28
昨日变化

51

主题

839

帖子

6915

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
43
蛮牛币
2745
威望
30
注册时间
2013-6-9
在线时间
1703 小时
最后登录
2017-5-29

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

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
568/1000
排名
5824
昨日变化
5

10

主题

124

帖子

568

积分

Rank: 5Rank: 5

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




回复 支持 反对

使用道具 举报

6蛮牛粉丝
1347/1500
排名
2433
昨日变化
10

24

主题

478

帖子

1347

积分

Rank: 6Rank: 6Rank: 6

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

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

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1347/1500
排名
2433
昨日变化
10

24

主题

478

帖子

1347

积分

Rank: 6Rank: 6Rank: 6

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

回复 支持 反对

使用道具 举报

排名
17046
昨日变化
7

0

主题

31

帖子

84

积分

Rank: 2Rank: 2

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

回复 支持 反对

使用道具 举报

排名
13242
昨日变化
4

0

主题

30

帖子

85

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

5熟悉之中
568/1000
排名
4118
昨日变化
2

5

主题

154

帖子

568

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

5熟悉之中
609/1000
排名
3632
昨日变化
26

5

主题

109

帖子

609

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

排名
21229
昨日变化
8

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

回复

使用道具 举报

排名
28
昨日变化

51

主题

839

帖子

6915

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
43
蛮牛币
2745
威望
30
注册时间
2013-6-9
在线时间
1703 小时
最后登录
2017-5-29

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

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

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

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

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

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1347/1500
排名
2433
昨日变化
10

24

主题

478

帖子

1347

积分

Rank: 6Rank: 6Rank: 6

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

举例:

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

回复 支持 反对

使用道具 举报

排名
25497
昨日变化
13

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 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

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

本版积分规则

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