需求

在日常游戏中,文字滚动效果是比较常用的。例如日常游戏顶部的新闻公告,聊天系统的文字滚动,都属于这个范围。

 

思路

由于使用的地方比较广泛,所以希望能够尽量独立的游戏之外,能够做到随处使用的功能。NGUI中有很方便的实现,由于功能比较简单,我这里就使用U3D中原生的GUI进行实现,便于以后的移植。

实现

一、新闻公告类

新闻公告类的文字滚动一般都是由左向右,或者由下至上滚动的,并且多是单行单列的模式。

 

public class Lamp : MonoBehaviour {

    public float scrollviewWidth;
    public float scrollviewHeight;
    public float moveSpeed;
    public GUISkin guiSkin;

    private float textPositionX = 10f;

    void OnGUI()
    {
        GUI.skin = guiSkin;
        float scrollviewPositionX = (Screen.width - scrollviewWidth)/2;//居中

        //开始滚
        GUI.BeginScrollView(new Rect(scrollviewPositionX, 10, scrollviewWidth, scrollviewHeight), Vector2.zero, new Rect(10, 10, scrollviewWidth, scrollviewHeight));    
        GUI.Label(new Rect(textPositionX,10,770,40),"翻滚吧!大爷!!");
        textPositionX += Time.deltaTime*moveSpeed;
        //结束滚
        GUI.EndScrollView();
    }  
}
Lamp

相关文章: