Unity3D 制作游戏简单“跑马灯”功能

本文介绍了如何在Unity中创建一个简单的游戏跑马灯系统,用于显示系统公告和消息。通过使用Text组件和更新逻辑,实现在屏幕上滚动文本的功能。当文本滚出屏幕后,系统会自动隐藏跑马灯。文章还提到了实现的局限性,如文本不断增加而未动态删减,并提出了使用信息文本预制件的优化方案。
摘要由CSDN通过智能技术生成

前言


前言

想做一个游戏中系统消息的提示功能,于是做了一个简单的跑马灯,只实现了简单的系统文字提示功能,仅作参考


一、什么是游戏跑马灯?

在游戏内用来显示系统公告,系统消息的滚动文字显示条就是跑马灯。

二、实现

1.思路

一个滚动文本用来存放系统消息,滚动文本滚出屏幕后隐藏跑马灯。

2.代码

代码如下(示例):

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

/// <summary>
/// 跑马灯
/// </summary>
public class ViewPaoma : MonoBehaviour {

    public static ViewPaoma instance;

    public Text textInfo;

    private float speed =270;

    private float curX=0;

    private void Awake()
    {
        instance = this;
        Reset();
    }

    private void Reset()
    {
        textInfo.text = "";
        textInfo.transform.localPosition = new Vector3(Screen.width / 2, 0, 0);
        gameObject.SetActive(false);
    }

    public void Show( string _str)
    {
        textInfo.text += "     " + _str;
        curX = textInfo.transform.localPosition.x;
        gameObject.SetActive(true);
    }

    private void Update()
    {
        if(textInfo.text.Equals("") && gameObject.activeSelf)
        {
            gameObject.SetActive(false);
        }
        else
        {            
            curX -= speed * Time.deltaTime;
            float _endX = -Screen.width / 2 - textInfo.gameObject.GetComponent<RectTransform>().rect.width;
            textInfo.transform.localPosition = new Vector3(curX, 0, 0);
            if (curX< _endX)
            {
                Reset();                              
            }
        }
    }
}

效果:

 


总结

知识点:Content Size Fitter组件可以在文本内容改变后自动调整文本宽度

此跑马灯缺点:文本一直在增加 没有动态删减,只有全部滚动出屏幕才能清空。

其他思路:动态添加信息文本预制件来实现。

优点可以自定义信息文本颜色、字体样式、是否包含图片;可以动态隐藏、添加信息文本预制件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值