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等坐标转换函数进行坐标转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值