Unity3D】【Unity基础】Transform类如何简写样式?

2020-11-30 18:27发布

4条回答
小磊子
2楼 · 2020-12-01 09:24

Text作为UGUI最基础的控件以及最常用的控件,它在项目中的应用绝对可以算是最多的,任何一个UI界面可以说都离不开它,它的基本属性如下:

一、rect transform组件:


rect transform(矩形变换):理解为专门用于UI的transform组件,是UGUI所有控件的标准位置变换组件,继承至transform,顾名思义,它所描述的是一个平面矩形区域的位置,就是2D的UI。


中间的九宫格分别代表该组件的锚点位置,选择中心的话,则该组件会根据屏幕分辨率的变化以屏幕中心位置自适应,其他位置同理。

第四行以及第四列(左起第一列及上起第一行非实际选项,主要起索引的作用,所以上图中的选项实际只有四行四列)的带蓝色箭头的选项为该组件的拉伸设置,第四行第一个表示的是组件跟随屏幕的高度拉伸,同时以屏幕左边作为锚点,其他同理。

最右下角一个表示的是组件跟随整个屏幕拉伸变化,适用于背景图片之类的,无论屏幕怎么变化,它都可以随之拉伸。

但有一个重点,其实组件上面也有描述:


在设置锚点以及拉伸类型的时候,如果同时按住shift键的话,可以同时设置组件的中心点,同时按住alt键的话,可以同时设置组件的位置,比如,我按住alt选择锚点为中心,那么组件的位置就会移动到屏幕中心位置,我按住alt选择最右下角的全屏拉伸,那么组件就会拉伸得跟屏幕一样大。这些设置都是自适应的,根据屏幕而动态变化。


二、Text组件:


很多属性都跟NGUI的类似,其实只要多用用也就了解了。

Line Spacing(文本行距):两行文字之间的间隔,一般也就在1和2之间最佳。

Rich Text(开启富文本):这个默认是开启的,一般情况下也别去关闭它,除非你的字体不想变色、斜体以及添加各种造型。

Alignment(对齐):这个没什么好说的了。

Horizontal overflow(水平溢出处理):也就是说文本框里的文字在水平方向超出区域限制时候的处理方式,这里使用默认值wrap(隐藏)即可。

Vertical overflow(垂直溢出处理):也就是说文本框里的文字在垂直方向超出区域限制时候的处理方式,这里使用默认值truncate(截断超出部分)即可。

best fit(最佳模式?):这个具体的效果是什么我也暂时不清楚,就让他保持初始值吧。

其他的也没什么好说的了,用一用就基本能知晓其功效了。


三、使用中的技巧:


《功能1:让我们的文本框高度随着文本的长度而变化》


思路:首先,根据字体的大小大概推算出一行能包含的文字数N,以及单行字体的高度H、单个文字的宽度W,在为文本赋值时获取文本的总长度S,代码如下:



《功能2:文本的阴影效果和描边效果》


阴影效果:添加阴影特效组件


描边效果:添加描边特效组件


Mantra
3楼 · 2020-12-01 13:58

简写样式是啥意思呀,没看明白问题呀。

Ross
4楼 · 2020-12-01 16:53

在脚本里面,获得物体的transform组件时,不需要使用GetComponent(),而是直接使用小写的transform即可得到.

1、在脚本中如果使用脚本所挂载物体的Transform时,只需要直接使用transform即可;

2、如果在脚本中得到其它物体上的Transform组件时,需要先得到游戏物体,然后再使用游戏物体对象.transform即可;

3、如果是精灵的RectTransform组件,都必须使用GetComponent()得到。

相关问题推荐

  • 回答 17

    还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学  学学js flash as等等  有个梯度就好多了如果要用好unity  不会编程那是不行的  学习的过程中都有个头疼的过程  记住  头越痛  代表你要接受的东西越多  坚持 你的大脑在和知识兼容中:D...

  • unity如何自学Unity3D 2022-01-06 15:24
    回答 18

    可以先思考学习的目的,是什么因素在驱动你。是完成一款作品?进入某个行业?还是探究某类问题?否则和技术相关的知识浩如烟海,很容易迷失在细枝末节上。而要找到动力源头。个人的经验,就是关注一些和自己同方向,同类型的创作者。他们输出的作品会激励你,...

  • 回答 23

    可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...

  • 回答 2

    Shader Unlit/Test{Properties{_MainTex(MainTex,2D)=white{}_MainColor(MainColor,COLOR)=(1,1,1,1)_AddTex(AddTex,2D)=white{}_Maxset(Max,Range(0.1,1.0))=0.1}SubShader{Tags{RenderType=Transparent Queue=Tran...

  • 回答 4

    文章主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细具体代码实现如下:Shader Custom/shuibowen{ Properties{ _MainTex(Base (RGB),2D)=white{} _distanceFactor(Distancefactor,float)=1 _timeFactor(time factor,float)=...

  • 回答 7

    策划的最基本的原则就是:改进缺点,做别人没有做到的。无论游戏策划还是其它策划都是一样!    游戏策划的第二个原则:放飞思想。也许你认为我是说策划们应该充满想象力,能想一些匪夷所思的东西!对不起。不是这意思!一个合格的策划不是为了发泄自己的...

  • 回答 7
    已采纳

    可以多玩一些其它的游戏,看一些科幻电影等,寻找灵感。

  • 回答 3
    已采纳

    游戏架构与设计不纯粹是一门科学,它不需要提出假设或探究真理,也不被逻辑或正规方法的严格标准所束缚。游戏的目的就是通过玩来获得娱乐,因此游戏设计即需要艺术家一样的创造力,也需要工程师一样的精心规划。游戏设计是一门手艺,就像好莱坞的电影摄像或服...

  • 回答 10

    Transform类是Unity脚本编辑的一个基础且重要的类一、成员变量position:在世界空间坐标transform的位置。localPosition:相对于父级的变换的位置。如果该变换没有父级,那么等同于Transform.position。eulerAngles:世界坐标系中的旋转(欧拉角)。localEule...

  • 回答 9

    public void Translate (translation : Vector3, relativeTo : Space = Space.Self) : void把物体向translation方向移动,距离为translation.magnitude。 relativeTo表示这个移动的参考坐标系。public void Translate (x : float, y : float, z......

  • 回答 10

    MatrixTransform:创建一个用于操纵二维屏幕中的对象或者坐标系统的专用转换矩阵RotateTransform:围绕二维(x,y)坐标系统中一个指定点顺时针方向旋转对象ScaleTransform:调整对象在二维(x,y)坐标系统中的尺寸SkewTransform:在二维(x,y)坐标系统中倾斜对象Tr...

没有解决我的问题,去提问