UnityGUI:在限定区域中自动滚动文字
2013-03-17 10:34
531 查看
帝都今天下的雨不小,貌似西土城路再次内涝了。大下午的天就跟黑了似的,于是一个人呆在实验室里吹着空调写着代码,也很惬意。周六有一整天的空闲时间,可以花很多心思去构思和实验,感觉一天下来收获不少。今天对项目做了一些分析,自己提了一大堆新的功能需求,要完成这些恐怕不是几个周六就能搞定的,好在这个东西就是用来打发闲暇时光的,没有老板整天跟在屁股后面催,所以我也不着急,慢慢一个一个实现。所以对于这个游戏到底什么时候能完成的问题,我也没个大概估计,走一步算一步吧,最重要的是从开发过程中切实学到东西。
我们都知道GUILayout的强大,自动化的排版让我们更快速更省心的开发GUI,但是很多时候需要结合GUI中的控件来创造一些特殊的效果,Unity对GUILayout和GUI的混合支持的也非常好。比如GUILayout.Area中穿插GUI.Label. 从今天的实验情况来看Unity中默认把GUILayout的Area中的GUI控件的起始坐标都是设置在Area自身的坐标系下,而不是整个Screen的坐标系,这样可以方便的在Area中添加GUI空间,并且如果坐标放置在Area本身显示区域的外面的话,还会屏蔽这个控件的显示。这就是本次文字滚动效果的原理。
myGUISkin.box返回一个GUIStyle,定制这个area的显示效果和GUI.Box的显示效果一致,即背景半透明效果。实际的效果如图所示,第一张图是刚开始从下向上滚动,在area外面的文字被很好的隐藏了。
区域内的文字刚开始从下部边缘出现并向上滚动
第二张图是滚动结束的效果,滚动结束出现按钮。
滚动结束出现按钮
我们都知道GUILayout的强大,自动化的排版让我们更快速更省心的开发GUI,但是很多时候需要结合GUI中的控件来创造一些特殊的效果,Unity对GUILayout和GUI的混合支持的也非常好。比如GUILayout.Area中穿插GUI.Label. 从今天的实验情况来看Unity中默认把GUILayout的Area中的GUI控件的起始坐标都是设置在Area自身的坐标系下,而不是整个Screen的坐标系,这样可以方便的在Area中添加GUI空间,并且如果坐标放置在Area本身显示区域的外面的话,还会屏蔽这个控件的显示。这就是本次文字滚动效果的原理。
var textRollSpeed:float = 10; var textRollPos:float = GUI_AREA_HEIGHT; GUILayout.BeginArea(Rect(Screen.width / 2 - GUI_AREA_WIDTH / 2, Screen.height - GUI_AREA_HEIGHT * 2, GUI_AREA_WIDTH, GUI_AREA_HEIGHT), myGUISkin.box); //只要滚动未完成(还没滚动到顶部)则按照指定速度滚动 if (textRollPos > 0) textRollPos -= Time.deltaTime * textRollSpeed; else textRollPos = 0; //rollText为需要滚动显示的一段文字. GUI.Label(Rect(10, textRollPos, GUI_AREA_WIDTH - 20, GUI_AREA_HEIGHT),rollText); GUILayout.EndArea(); //当文字滚动到限定区域顶部即滚动完成时显示Press To Continue按钮. if (textRollPos <= 0) { if(GUI.Button(Rect(Screen.width / 2 - MENU_BTN_WIDTH / 2, Screen.height - GUI_AREA_HEIGHT + 50, MENU_BTN_WIDTH, MENU_BTN_HEIGHT), "Press To Continue...")) { Application.LoadLevel(nextLevel); } }
myGUISkin.box返回一个GUIStyle,定制这个area的显示效果和GUI.Box的显示效果一致,即背景半透明效果。实际的效果如图所示,第一张图是刚开始从下向上滚动,在area外面的文字被很好的隐藏了。
区域内的文字刚开始从下部边缘出现并向上滚动
第二张图是滚动结束的效果,滚动结束出现按钮。
滚动结束出现按钮
相关文章推荐
- UnityGUI:在限定区域中自动滚动文字
- UnityGUI:在限定区域中自动滚动文字
- unity 3d 在限定区域内 实现文字拖动翻页
- ScrollView 嵌套 ListView 时,刷新页面时,会出现 自动 滚动至listview 的区域 解决方案:
- Android - 自动文字滚动TextView
- JS实现当前编辑行自动滚动至div显示区域
- XP自动关闭高级文字服务,语言栏不能显示,也不能在区域和语言选项中更改过来
- Swing中,实现JTextArea自动滚动到文字底部
- JS实现当前编辑行自动滚动至div显示区域
- unity3D中GUI标题内文字滚动效果
- 实现TextView的垂直滚动,更新文字时自动滚动到最后一行
- Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行?
- JS实现div内部的文字或图片自动循环滚动代码
- Android文字自动横向滚动的TextView(文字长度不够也可以)
- 文字如果超出了自动 向左 横向 滚动
- Android 文字自动滚动(跑马灯)效果的两种实现方法
- JS实现div内部的文字或图片自动循环滚动代码
- Unity DF-GUI 中文输入以及自动换行
- Android TextView文字横向自动滚动(跑马灯)