unity公告跑马灯实现

scene中的设置
在这里插入图片描述
在这里插入图片描述

代码移动

/// <summary>
/// 公告跑马灯
/// </summary>
private Text NoticeText;
public Vector3 Speed=new Vector3(2,0,0);
public float _MoveEndPoint;
public Vector2 _MoveStartPoint;
public float _ParentWidth;
public float _SelfWidth;

    /// <summary>
/// 注册 公告,便于刷新
/// </summary>
/// <param name="text"></param>
void RegisterBroadcast(string text)
{
    NoticeText.text = text;
    _ParentWidth = NoticeText.transform.parent.GetComponent<RectTransform>().rect.width;
    // 宽度获取
    //        _SelfWidth = NoticeText.transform.GetComponent<RectTransform>().rect.width;
    _SelfWidth = NoticeText.preferredWidth;
    NoticeText.transform.GetComponent<RectTransform>().pivot = new Vector2(0, 0.5f);

    _MoveEndPoint = -_ParentWidth / 2 -_SelfWidth;
    
    _MoveStartPoint=new Vector2(_ParentWidth / 2, 0);
}

private void FixedUpdate()
{
    // 公告移动
    if (NoticeText.gameObject.activeInHierarchy)
    {
        NoticeText.transform.localPosition -= Speed;
        if (NoticeText.transform.localPosition.x <= _MoveEndPoint)
        {
            NoticeText.transform.localPosition = _MoveStartPoint;
        }
    }
}
Unity实现跑马灯效果,可以使用UI组件中的Text组件,结合代码控制实现文字的滚动。 具体实现步骤如下: 1. 创建一个空的GameObject,命名为MarqueeText。 2. 在MarqueeText下创建一个Text组件,并设置好文字内容、字体大小、颜色等。 3. 在MarqueeText下再创建一个空的GameObject,命名为Content,用于容纳Text组件。 4. 将Text组件拖拽到Content下,调整Content的位置和大小,使Text显示在Content的左边。 5. 编写脚本MarqueeText.cs,用于控制Text的滚动。代码如下: ```csharp using UnityEngine; using UnityEngine.UI; public class MarqueeText : MonoBehaviour { public float speed = 50f; // 滚动速度 private RectTransform contentRect; // Content的RectTransform组件 private Text text; // Text组件 private float textWidth; // Text的宽度 private float contentWidth; // Content的宽度 void Start() { contentRect = transform.Find("Content").GetComponent<RectTransform>(); text = transform.Find("Content/Text").GetComponent<Text>(); textWidth = text.preferredWidth; contentWidth = contentRect.rect.width; } void Update() { contentRect.localPosition -= new Vector3(speed * Time.deltaTime, 0, 0); if (contentRect.localPosition.x <= -textWidth) { contentRect.localPosition += new Vector3(contentWidth + textWidth, 0, 0); } } } ``` 6. 将MarqueeText.cs挂载到MarqueeText对象上,并设置好速度。 7. 运行程序,就可以看到文字在Content中滚动了。 以上就是实现Unity跑马灯效果的基本步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值