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 ...
随机推荐
- 问题解决——MFC SDI程序 CFormView中控件随窗口缩放
从来都是做对话框程序,这次想做个SDI的程序,想着用一下带Robbin界面的office2007风格,就不用使用那些花钱的商业控件/UI库了. 如果你不想看我打的文字,可以直接拷走代码,自己声明上定义 ...
- 常用HTML正则
<?php //HTML a连接正则 $str = ''; $isMatched = preg_match('/<a.*?[^<]>.*?<\/a>/', $str ...
- java 根据 根节点及所有子成员 构造树tree
实体类entity package com.ompa.biz.entity; import java.util.ArrayList; import java.util.List; public cla ...
- A python tool to static sim.log duration time
When working ALU IMS Patch team, we need to static the SU duration to add it to the patch report, th ...
- python singleton
方法一:用元类的方式实现一个singleton. liuxiaoyan@development:~/mysite$ cat Singleton.py class Singleton(type): &q ...
- 如何在nopcommerce3.3注册页面添加密码强度检查仪?
我刚刚完成了nopCommerce注册页面的密码强度检查仪,因为我觉得在电子商务交易平台,安全问题是非常重要的.在注册页面有必要添加一个密码强度检测仪,以便通知用户他们的密码是否足够强大.今天,大多数 ...
- 最小生成树之Kruskal算法
用Kruskal方法解决无向连通图最小生成树问题: 1所有的点初始化的时候自成一个集合 2所有的边按照权值大小,从小到大排序 3选取权值小的边加入现有集合中,且加入后必须不构成环路,加入后,记录点的祖 ...
- uva 10129 play on words——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABNUAAANeCAYAAAA1BjiHAAAgAElEQVR4nOydabWsuhaFywIasIAHJK
- 【温故而知新-Javascript】图片效果(图像震动效果、闪烁效果、自动切换图像)
1.当鼠标指针经过图像时图像震动效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- ZBrush中的笔刷该怎样制作
ZBrush给用户提供了许多的常用笔刷,我们可以使用这些笔刷自由地发挥创意.为了让雕刻速度更快,模型刻画更细致我们常常也会创建自定义笔刷,本文教您在ZBrush中制作笔刷. 查看更多内容请直接前往:h ...


