在Unity中要实现在一个固定背景框条内播放文本,并且文本能够衔接循环滚动,可以通过以下步骤实现:
1、创建一个Image组件作为背景框条,在Image下添加一个Mask组件,如下图:
2、创建Text文本组件,并写好文本内容,调整宽高,然后把该Text组件再复制一个:
3、编写控制脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class TextScroller : MonoBehaviour
{public Text text;public Text duplicateText;public float scrollSpeed = 50f;private RectTransform textRect;private RectTransform duplicateTextRect;// Start is called before the first frame updatevoid Start(){textRect = text.GetComponent<RectTransform>();duplicateTextRect = duplicateText.GetComponent<RectTransform>();duplicateTextRect.anchoredPosition = new Vector2(textRect.anchoredPosition.x + duplicateTextRect.rect.width, 0);}// Update is called once per framevoid Update(){// 移动文本textRect.anchoredPosition -= new Vector2(scrollSpeed * Time.deltaTime, 0);duplicateTextRect.anchoredPosition -= new Vector2(scrollSpeed * Time.deltaTime, 0);// 当第一份文本移出背景框条时,重置位置if (textRect.anchoredPosition.x < -textRect.rect.width){textRect.anchoredPosition = new Vector2(duplicateTextRect.anchoredPosition.x + textRect.rect.width, 0);}// 当第二份文本移出背景框条时,重置位置if (duplicateTextRect.anchoredPosition.x < -duplicateTextRect.rect.width){duplicateTextRect.anchoredPosition = new Vector2(textRect.anchoredPosition.x + duplicateTextRect.rect.width, 0);}}
}
4、把脚本放到场景中,并把两个Text文本分别赋予text和duplicateText两个变量。
5、完毕,运行起来。
Unity Text文本固定框条内无缝衔接循环滚动效果实现