unity3d UI设置

在unity3d中,我们经常需要往界面上添加图片,文本,这时候我们就得使用UI了。 creat->uI,里面就有各种各样的UI对象。
在我们设置了各种各样的Text、Button、Image之后,对于小白来说,没有经过他人的手把手操作,要想调整它们的位置是非常困难的。因为,就算通过Scence中的拖拽,在改变画面大小之后,上面的UIGameObject也会到处乱飞。

现在我讲一下解决过程:
第一步:creat->UI->想要的UI;
第二步: 切换到Scence,并且切换到2d视图(位于左上角);
第三步:点击UI对象,在左侧Inspector中,有一个RectTransform,里面左侧有一个四方形的视图;
第四步:点击视图,里面有各种选项,要想使得无论水平,还是垂直方向,UI对象随着画面的大小自动变换位置,适应画面,可以按住shift,选择右下角的图形。同理,若想按别的方向固定变化,可以选择对应的拉伸。

原理:
Anchor(锚点):是由两个Vector2的向量决定的,归化成两个点,分别为Min和Max,两个点确定一个矩形,Min确定左下角坐标,Max确定右上角坐标。
Pivot(中心):Pivot为矩形中心。显示Pivot可以在工具栏中选择Transform Tools的最后一个选项,或者使用快捷键T。

笔记:
1.Transform有 position 和 localPosition 属性,这两个分别代表在世界空间的绝对位置和相对于父级物体的相对位置。RectTransform引入了 anchoredPosition 和 anchoredPosition3D ,它们都是相对位置,但是相对的是自身的Anchor。当锚点全部重合时, anchoredPosition 代表的就是自身Pivot到Anchor的向量。

2.在Screen Space——Overlay的模式下,由于Canvas的世界尺寸与其像素尺寸在数值上相等,因此其rectTransform的position与其在屏幕空间的坐标在数值上也相等。这种模式下,要获取某个RectTransform的屏幕坐标,直接使用position就可以。在Screen Space——Camera的模式和World Space下,RectTransform的渲染与摄像机有关,在获取其屏幕坐标时,需要利用canvas.worldCamera,或者transform.TransformPoint等坐标转换函数进行坐标转换。

你可能感兴趣的:(unity,unity3d)