Unity3D 文字滚动跑马灯效果
需求
在日常游戏中,文字滚动效果是比较常用的。例如日常游戏顶部的新闻公告,聊天系统的文字滚动,都属于这个范围。
思路
由于使用的地方比较广泛,所以希望能够尽量独立的游戏之外,能够做到随处使用的功能。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)/;//居中 //开始滚
GUI.BeginScrollView(new Rect(scrollviewPositionX, , scrollviewWidth, scrollviewHeight), Vector2.zero, new Rect(, , scrollviewWidth, scrollviewHeight));
GUI.Label(new Rect(textPositionX,,,),"翻滚吧!大爷!!");
textPositionX += Time.deltaTime*moveSpeed;
//结束滚
GUI.EndScrollView();
}
}Lamp
背景与本主题无关。。。。。
不过看起来字体有一点小,由于滚动区域和可视区域大小是一致的,所以没有显示出滚动条。在调用OnGUI的时候我提前设置了GUISkin,只需要修改GUISkin,就可以改变外观了。
简单的加了个纯色的背景,字体放大了点,有一点滚动条的意思了,没有可爱的美术同学的帮助果然很难看呀,只好先将就将就了。
一个简单的跑马灯就大功告成了。
二、聊天界面类
相对于新闻公告类来说的,聊天类就需要一个堆栈的布局,由上至下的进行添加。
public class Chat : MonoBehaviour { public string stringToEdit;
private List<string> chatContents = new List<string>(); void Start () {
stringToEdit = string.Empty;
} void OnGUI()
{
GUI.BeginScrollView(new Rect(, , , ), Vector2.zero, new Rect(, , , ));
for (int i=; i<chatContents.Count; i++) {
GUI.Label (new Rect (, *(i+), , ), chatContents[i]);
}
GUI.EndScrollView(); stringToEdit = GUI.TextArea(new Rect (, , , ), stringToEdit,);
if (GUI.Button (new Rect (, , , ), "Send")) {
if(chatContents.Count>){
chatContents.RemoveAt();
}
chatContents.Add (stringToEdit);
stringToEdit = string.Empty;
}
}
}Chat
以上代码基本实现了聊天界面的展示,聊天显示内容数量的控制。
总结
直接使用OnGUI绘制的方法能够提高功能的复用度,基本上可以做到哪里需要就直接使用一个类库文件进行迁移。但是这只是简单的实现了其基本的功能,例如数据接口,运动方向控制等功能都还可以进行进一步的扩展。
Unity3D 文字滚动跑马灯效果的更多相关文章
- 使用JS实现图片轮播滚动跑马灯效果
我的第一篇文章.哈哈.有点小鸡冻. 之前在百度搜索"图片轮播"."图片滚动",结果都是那种可以左右切换的.也是我们最常见的那种.可能是搜索 关键字的问题吧. ...
- Android textView点击滚动(跑马灯)效果
布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to ...
- TextView: android:ellipsize="marquee" 跑马灯效果无效的问题
今天练习的时候想实现一个文字的跑马灯效果,本来想自己手动实现的,不过突然想起来android里的TextView属性似乎自带了这个效果,叫: android:ellipsize ,平时都是把它的属性值 ...
- android实现跑马灯效果
第一步:新建一个新项目,MarqueeTextView 首先为了观察到跑马灯效果,将要显示的文字极可能 写长.在strings.xml目录里面将 <string name="hello ...
- Android开发:文本控件详解——TextView(二)文字跑马灯效果实现
一.需要使用的属性: 1.android:ellipsize 作用:若文字过长,控制该控件如何显示. 对于同样的文字“Android开发:文本控件详解——TextView(二)文字跑马灯效果实现”,不 ...
- marquee标签实现跑马灯效果--无缝滚动
今天在做微信端的大转盘抽奖时,想把所有用户的抽奖记录做成无缝滚动的效果,无奈我的js功底太差,一时想不出实现的方法,便百度各种相似效果.但无意中发现了一个html标签——<marquee> ...
- JavaScript小实例-文字跑马灯效果
我们常常能看到显示屏上字体的滚动以及手机弹幕等,下面所示代码就是一个简易的文字跑马灯的效果: <!DOCTYPE html> <html> <head lang=&quo ...
- 自定义有焦点的TextView实现广告信息左右一直滚动的跑马灯效果
import android.content.Context; import android.text.TextUtils; import android.util.AttributeSet; imp ...
- TextView跑马灯效果
转载:http://www.2cto.com/kf/201409/330658.html 一.只想让TextView显示一行,但是文字超过TextView的长度怎么办?在开头显示省略号 android ...
随机推荐
- SQLServerDBA十大必备工具---让生活轻松点(转)
曾经和一些DBA和数据库开发人员交流时,问他们都用过一些什么样的DB方面的工具,大部分人除了SSMS和Profile之外,基本就没有使用过其他工具了: 诚然,SSMS和Profile足够强大,工作的大 ...
- PHP笔试题(转载)
整理了一份PHP高级工程师的笔试题,问题很全面.嗯,基本上这些题都答得不错,那么你应该可以胜任大部分互联网企业的PHP职位了.下面直接上题. 1. 基本知识点 HTTP协议中几个状态码的含义:503, ...
- Moodle插件之Filters(过滤器)
Moodle插件之Filters(过滤器) 过滤器是一种在输出之前自动转换内容的方法. 目的: 创建名为helloworld的过滤器,实现将预输出的“world”字符串替换成“hello world” ...
- 动手学习TCP: 环境搭建
前一段时间通过Wireshark抓包,定位了一个客户端和服务器之间数据传输的问题.最近就抽空看了看<TCP/IP详解 卷1>中关于TCP的部分,书中用了很多例子展示了TCP/IP协议中的一 ...
- 关于extern和static关键字引出的一些关于作用域和链接属性和存储类型的问题
在进入正题前我们必须了解一些概念: 标识符:标识符不仅仅代表着变量的名字,main()函数的main也是一个标识符,这点很重要. 存储类型:即变量的存储位置及其生存周期:静态区:分为两块 .date ...
- 该如何认识ZBrush中的2.5D绘画
ZBrush不仅对3D行业进行了改革.让艺术家感到无约束自由创作的3D设计,同时它还是一个强大的绘画程序!基于强大的Pixol功能,ZBrush®将数字绘画提升到一个新的层次.如下图所示,插画功能主要 ...
- Unity3D 多平台 预编译 宏定义
平台定义 UNITY_EDITOR 编辑器调用. UNITY_STANDALONE_OSX 专门为Mac OS(包括Universal,PPC和Intelarchitectures)平台的定义. UN ...
- Flex xml编辑器(老外写的)
github上的一个项目老外写的xml编辑器,灵活利用了Tree的labelFunction实现节点运行时展现.开源地址是 https://github.com/softinsure/XML-Edit ...
- oracle转Mysql中,varchar2(10)和number应该转换为什么类型?
一. varchar2(10)和number应该转换为什么类型? oracle转成mysql时:varchar2(10)可以转成varchar(10)number则要看oracle中存储的具体是什么类 ...
- Android自定义进度条颜色
这个没法了只能看源码了,还好下载了源码, sources\base\core\res\res\ 下应有尽有,修改进度条颜色只能找progress ,因为是改变样式,首先找styles.xml ? 1 ...


