U3D UGUI学习4 - Layout和文字适配

Layout这部分UGUI算是比NGUI做的到位

之前遇到了一个问题,NGUI做文字和背景框适配和容易,绑定一下就好了。UGUI你得弄Layout才可以,而且还需要配置。

但这个Layout使用场合是真的不多。。感觉像是从CSS那套概念强行引入过来

1.简介:

Content Size Fitter

这个是width/height = target的形式,宽高被动赋值。

Aspect Ratio Fitter

高度放大,宽度放大

Layout Groups

用来设置Min,Preferred,Flexible三项属性的约束,似乎不支持子层级

Layout Element

这个功能相较NGUI简直是救命稻草,当做x Layout Group排序时,有的元素间距大,有的元素间距小。NGUI不支持,NGUI只能统一间距排列。

你必须自己写代码处理这样的问题,现在UGUI解决了,你可以设置LayoutElement来单独设置间距

Horizontal Layout Group,Vertical Layout Group,Grid Layout Group

三种自动布局类型

2.三种排列布局类型(Horizontal Layout Group,Vertical Layout Group,Grid Layout Group)

NGUI里自动布局用的是Grid和Table,这两个布局都差不多,为什么不整合成一个。还有一个问题是,重新布局就得调用代码重新刷新一次,而且不会立即刷新好像是这一帧执行完成后刷新。

并且在编辑器状态下无法预览。

UGUI在这方面处理的还不错,可以实时预览了,三种布局传达的也很清晰明了

其实用起来还可以,也不用多说什么,上手就能用吧。建议调节宽高,不要调节padding。

2.使用布局得到文字最终宽度和高度

官方文档中给出这么一段:

Fit to size of Text

In order to make a Rect Transform with a Text component on it fit the text content, add a Content Size Fitter component to the same Game Object which has the Text component. Then set the Horizontal Fit, the Vertical Fit, ot both to the Preferred setting.

提到Content size fitter绑定给文本框,就可以把布局绑定过去。

的确如此,但这样还有一个问题。必须依赖手动换行,不能自动换行。

这时候就要用到Layout Element了:

让它对宽度进行约束。这样再绑定宽度和高度,就可以和背景框适配了。。。唉,UGUI真蛋疼

时间: 2024-10-05 05:48:23

U3D UGUI学习4 - Layout和文字适配的相关文章

U3D UGUI学习3 - Text

1.对应NGUI的四种文字显示模式 Shrink Content 对应NGUI第一种模式     勾选Best Fit 但似乎有一个Bug,文字过多的时候会爆框.解决方法是改变Line Spacing,但再多了又爆了,无解 Clamp Content 对应NGUI第二种模式,就是UGUI的默认模式 Horizontal Overflow  -Wrap Vertical Overflow -TurnCate Resize Freely 对应NGUI的第三种模式,无限延长 Horizontal Ov

U3D UGUI学习1 - 层级环境

就像主动碰撞检测需要刚体,刚体需要Mesh Filter.Unity的一些组件都需要基础配置. UGUI的基础配置和NGUI差不多,把NGUI的那些中间件全部削减干净,甚至连快捷键也没有. 1.基础层级的依赖: 所有的UI全部放置于Canvas下,类似NGUI的UI Root.而当你创建UI会自动生成EventSystem的GameObject,处理交互事件 所有的UI也都需要用UI层 并且Transform在UI的层级中无效,必须要换成RectTransform. 这个改动其实是双刃剑,旧版本

U3D UGUI学习2 - RectTransform

总的来说整合了NGUI很多零散功能,比如NGUI2.X处理拉伸要额外套脚本,NGUI3.X开始引入新的锚点.再加上依赖BoxCollider使得整个HUD显示非常乱 而UGUI很清晰明了,你也能看清楚拉伸怎么设置. 但也有一些误导性的设计以及不人性化的设计. 1.Anchor RectTransform相交于NGUI,其实稍显复杂.在NGUI 3.x里你要处理拉伸可以直接设置Anchor锚点模式,也可以挂全屏拉伸脚本. 并且,NGUI里你可以设置任何节点作为父节点,而UGUI里你只能设置上一级作

Unity3D UGUI学习系列索引(未完成)

U3D UGUI学习1 - 层级环境 U3D UGUI学习2 - Canvas U3D UGUI学习3 - RectTransform U3D UGUI学习4 - Text U3D UGUI学习5 - Layout和文字适配

Android 布局学习之——Layout(布局)具体解释二(常见布局和布局參数)

 [Android布局学习系列]   1.Android 布局学习之--Layout(布局)具体解释一   2.Android 布局学习之--Layout(布局)具体解释二(常见布局和布局參数)   3.Android 布局学习之--LinearLayout的layout_weight属性   4.Android 布局学习之--LinearLayout属性baselineAligned的作用及baseline    Layout Parameters(布局參数): 在XML文件里,我们常常看到类

Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

[Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.Android 布局学习之——LinearLayout的layout_weight属性   4.Android 布局学习之——LinearLayout属性baselineAligned的作用及baseline    Layout Parameters(布局参数): 在XML文件中,我们经常看到类似与lay

学习使用LaTex排版文字输出为pdf(1)

学习用latex写我的简历. 我在ubuntu环境下,先下载所需软件,命令百度就可以. 先创建一个a.tex,写上 1 \documentclass{article} 2 \usepackage{CJK} 3 \begin{document} 4 \begin{CJK}{UTF8}{gbsn} 5 真是一个笨蛋! 6 \end{CJK} 7 \end{document} 然后执行pdflatex a.tex 这样就会有pdf输出,直接用evince a.pdf就可以啦. 功能很多很强大 关于输出

u3d shader学习笔记1

促使我学习SHADER的重要原因是希望深入理解3D渲染的机制,在此基础上可以灵活达到某种效果与性能的平衡,开发出具有良好体验的VR应用. 因为VR应用体验的好坏,直接由游戏的帧率决定,而游戏的帧率则受到渲染一帧画面所花时间的影响,因此如何提升渲染时间,而又可以得到期望的效果,必须要对SHADER或者说渲染机制有深入的理解. 一.在U3D中,shader是什么?shader即“着色器”,我们之所以能够看到屏幕上丰富多彩的3D画面,正是得益于它.U3D中与shader相关的概念以及它们同shader

Android 布局学习之——Layout(布局)详解一

layout(布局)定义了用户界面的可视化结构(visual structure),如Activity的UI,应用窗口的UI. 有两种方式声明layout: 1.在xml文件中声明UI组件. 2.在运行时,实例化布局元素.我们可以以编码的方式创建View或ViewGroup对象,操纵它们的属性. 下面用一个小例子来学习怎样以编码的方式添加layout: 1 import android.app.Activity; 2 import android.graphics.Color; 3 import