跑马灯,这个功能在游戏中还是很常见的,,,

(网图)

注意要使用Mask,遮挡走出去的文字(挂载到背景上,代码和要滚动的文字作为其子物体的组件)

using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
/// 跑马灯文字设置
/// </summary>
public class PaoMaDengText : MonoBehaviour {[SerializeField]private  Text pmdText;     //跑马灯text.private Queue<string> pmdQueue;     //跑马灯队列.private bool isEnd = false;   //判断当前text中的跑马灯是否跑完.private void Start(){if(pmdText == null) pmdText = this.GetComponent<Text>();Init();}public void Init(){pmdQueue = new Queue<string>();AddMessage(pmdText.text);}/// <summary>/// 添加跑马灯文字.../// </summary>/// <param name="msg">文字内容</param>public void AddMessage(string msg){if (!gameObject.activeSelf){gameObject.SetActive(true);Init();}pmdQueue.Enqueue(msg);    if (isEnd) return;StartCoroutine(Marquee());}public IEnumerator Marquee(){float begin_X = 200;  //第一个字开始的位置 float end_X = 200; while (pmdQueue.Count > 0){Vector3 pos = pmdText.rectTransform.localPosition;float duration = 10f;  //默认时间float speed = 100f;    //滚动速度int loop = 3;          //循环次数string msg = pmdQueue.Dequeue();pmdText.text = msg;float txetWidth = pmdText.preferredWidth;  //文本的长度...float distance = begin_X - end_X + txetWidth;   //自己体会...duration = distance / speed;isEnd = true;//Debug.Log("distance:" + -distance + " speed:" + speed + " duration:" + duration);while (loop-- > 0)//todo 看需求... (loop > 0){pmdText.rectTransform.localPosition = new Vector3(begin_X, pos.y, pos.z);  //归位...pmdText.rectTransform.DOLocalMoveX(-distance, duration).SetEase(Ease.Linear);  //滚动...yield return new WaitForSeconds(duration);}yield return null;}isEnd = false;gameObject.SetActive(false);yield break;}private void OnDisable(){StopAllCoroutines();}
}

UGUI 实现跑马灯效果相关推荐

  1. HarmonyOS 实现跑马灯效果

    跑马灯效果实现效果图 注意事项: HarmonyOS里面Text由于multiple_lines默认为false 所以我们可以直接来设置跑马灯效果,当想设置Text换行的时候设置multiple_li ...

  2. Android 使用 ellipsize 实现文字横向移动效果(跑马灯效果)

    实现的效果图如下 ellipsize 可以设置跑马灯效果 具体代码设置如下 <TextViewandroid:layout_width="match_parent"andro ...

  3. TextView实现跑马灯效果

    经常使用TextView会出现这样的情况,有限的空间内只能写一行,然后导致好多文字被"..."表示了,如图: 而且有可能是重要信息被隐藏了,于是就有了跑马灯效果. 实现方式很简单: ...

  4. 单行文字垂直/水平跑马灯效果

    需求描述 接到的需求是这样的:跑马灯效果 一次展示一行文字 循环滚动 文字滚动到视野中停留一秒后滚出. 静态效果如下图,文字从下往上或者从右往左滚动,滚动到此位置时停留一秒(不会传动图... 网络上有 ...

  5. c语言小程序跑马灯,微信小程序实现文字跑马灯效果

    本文实例为大家分享了微信小程序实现文字跑马灯的具体代码,供大家参考,具体内容如下 wxml 1 显示完后再显示 Box"> 2 出现白边后即显示 Box"> {{tex ...

  6. c语言小程序跑马灯,微信小程序实现跑马灯效果(完整代码)

    在微信小程序 里实现跑马灯效果,类似滚动字幕或者滚动广告之类的,使用简单的CSS样式控制,没用到JS,效果如下图: Wxml代码:一个人活着就是为了让更多的人更好的活着! Wxss代码:/*首页跑马灯 ...

  7. js实现横向跑马灯效果

    首先我们需要一个html代码的框架如下: <div style="position: absolute; top: 0px; left: 168px; width: 100%; mar ...

  8. 黑马vue---10-11、Vue实现跑马灯效果

    黑马vue---10-11.Vue实现跑马灯效果 一.总结 一句话总结: 1. 给 [浪起来] 按钮,绑定一个点击事件   v-on   @ 2. 在按钮的事件处理函数中,写相关的业务逻辑代码:拿到 ...

  9. android:ellipsize实现跑马灯效果总结

    原文地址:http://www.cnblogs.com/Gaojiecai/archive/2013/06/18/3142783.html android:ellipsize用法如下: 在xml中 a ...

最新文章

  1. SAP QM 高阶之Physical Sample Management
  2. Android之AsyncTask源码解析
  3. Mestasploit 客户端渗透
  4. android ota 版本校验,OTA升级签名校验简析
  5. C++计算实时输入数据的统计信息实现算法(附完整源码)
  6. 河南省第十届省赛 Plumbing the depth of lake (模拟)
  7. python中感叹号_C#中感叹号(!) 的作用总结
  8. Java自动拆箱陷阱。 谨防!
  9. EasyUI界面显示中文格式(日期中文格式)
  10. robotac属于a类还是b类_工程项目分类A类、B类、C类、D类项目是指什么?注意:不是资料的A、B、C类报建资料...
  11. Oracle sga、pga介绍改动
  12. PHP Yii开源框架入门学习(二)修改Yii网站访问路径
  13. 迎建国七十周年,Linux厂商巡礼之优麒麟
  14. chrome 同站策略(samesite)问题及解决方案
  15. 全球移动通信系统GSM
  16. 关于win10无线网卡不可用,网络适配器出现黄色感叹号问题的修复方式
  17. 根据周次显示日期范围_刚刚!总投资34亿元!京东方投建12英寸OLED微显示器件生产线...
  18. 神舟Z7-KP7SC笔记本电脑-游戏实机帧数截图与鲁大师跑分
  19. 手机订货系统的基本原理 帮助经销商卖货
  20. 基于51单片机的超声波避障小车(HC-SR04,SG90舵机)

热门文章

  1. SPSS PP图和QQ图
  2. GPOS - Glyph定位表
  3. input输入内容校验
  4. layui table 表头合并_layui table合并单元格
  5. STM32的HAL库SPI操作(Slave模式)
  6. [机缘参悟-5]:科学、哲学、宗教大一统架构
  7. sql 按照季度进行分组
  8. Ubuntu 18.04 vscode 关于 C++ intellisense 失灵的几个可能原因(踩坑实录/2021.5.3)
  9. 【转自MOP】由骂Iphone的一个帖子,想到中国离世界的差距有多大?
  10. 微信重大更新,可以修改微信号了!!!