【UGUI】如何实现自动滚动文本效果

       当我们在制作UI使用Text时,如果文本信息过长,有两种处理方式,一种是换行展示,另一种则是滚动展示,下面博主将给大家介绍如何制作自动滚动文本。

       第一步,创建一个Image(GameObject > UI > Image),可以看到出现了一个白色的框框,改变框框的尺寸,以便进行文本信息显示,接着在Image下创建一个Text(GameObject > UI > Iegacy > Text),改变Text的尺寸,长度超出Image尺寸或边界,可以将Image改为半透明,初始化文本信息“Success is the ability to go from one failure to another with no loss of enthusiasm.”,属性根据自己进行设置,如下图所示。

       第二步,为Image添加组件Mask,效果如上图,再添加组件Scroll Rect,进行设置如下图,将Text拖入,Horizontal是横向滚动,Vertical是纵向滚动,这里我们取消Vertical,Movement Type(下面会进行介绍)设置为Clamped(可拖拽,无弹性)。

       属性Movement Type介绍:

               Unrestricted:无限制,可任意拖拽,可超出文本边界。

               Elastic:可拖拽,有弹性,不可超出文本边界。

               Clamped:可拖拽,无弹性,不可超出文本边界。

       第三步,给Image贴代码,新建C#文件,重命名为TextController,双击打开cs文件,代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TextController : MonoBehaviour
{
    public ScrollRect rect;
    // Start is called before the first frame update
    void Start()
    {
        rect = gameObject.GetComponent<ScrollRect>();//绑定组件
    }

    // Update is called once per frame
    void Update()
    {
        rect.horizontalNormalizedPosition += 0.08f * Time.deltaTime;//滚动速度
    }
}

       以上,一个简单的自动文本滚动效果就做好了,运行即可。

       下面再给大家介绍下在博主的3d游戏项目案例(金山打字之生死时速)中如何控制滚动效果和玩家打字的速率同步,代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TextController : MonoBehaviour
{
    public ScrollRect rect;
    // Start is called before the first frame update
    void Start()
    {
        rect = gameObject.GetComponent<ScrollRect>();
    }

    // Update is called once per frame
    void Update()
    {
        //rect.horizontalNormalizedPosition += 0.08f * Time.deltaTime;
    }
    public void Run()
    {
        rect.horizontalNormalizedPosition += 0.02f;//滚动频率
    }
}

       在原文PlayerController.cs文件中判断是否按下字母函数下加入以下代码实现调用:

    if (index >= 9)//当敲第10个字母的时候,开始滚动
    {
       runText.GetComponent<TextController>().Run();//调用函数
    }
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱花不再在海棠湾涮羊肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值