2019-07-01 23:58:42 Mr_Sun88 阅读数 113

     Unity3D实用插件之Anchor Snap,快速设置图片锚点包裹图片


目录

1、博客介绍

2、内容

(1)设置图片锚点包裹

(2)设置图片以及子物体锚点包裹

3、推送

4、结语


1、博客介绍

本篇介绍插件Anchor Snap,该插件可以快速的设置图片的锚点包裹住图片,该资源在商店内免费


2、内容

(1)设置图片锚点包裹

 

(2)设置图片以及子物体锚点包裹

 


3、推送

博主Github: https://github.com/KingSun5


4、结语

       插件很轻量,在需要的地方会节省很多的时间,看一下代码其实也很简单,有兴趣的可以了解一下,若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。

2018-05-04 09:24:20 dxj467822057 阅读数 282

在Unity3D中,即使我们布置好UGUI如下图所示:


如果我们不进行一些调整。在Unity3D默认的设置下,在不同分辨率,就算我明明在Unity3D看到这4个按钮安分布置到屏幕的4个角,而且在Unity3D调试的时候,也看到确实如此了,但是在发布的运行时候,尤其允许用户可以自行调整分辨率的情况下。

比如在640x480的分辨率之下:


在比如在800x600分辨率之下:


这根本就不是我想要的,好吗?我明明在你Unity3D那个Canvas那个框放好了UI组件,好吗?你Unity3D给我整出这些东西处理。

于是就衍生出一个Canvas自适应的问题了。无论是在PC还是各种移动设备,自适应是最重要的。那种定死分辨率的游戏就是反人类。

这方面其实根本就不用写代码或者设置摄像机的,只需要调调属性就好,没这么复杂,但这么容易调,就不会有这么多问题了。同时,再补充一句,基本是在没有创建UI时调整,是调好自适应再创建UI的。具体如下操作:

1、对于Canvas的属性如下图设置。


2、对于四个角的Button分别设置其锚点,左上的Button锚点就弄到左上即可,左下的弄到左下……以此类推,如图所示。


那么发布的时候就得到我们想要的效果,在经典的1366x768分辨率测试都没有问题:


起初的锚点没有更改的时候,即使改完Canvas,各个组件还是样式错乱的,不能自适应的。为何就小改一下锚点就这么大魔力了?下面谈谈锚点。

关于锚点

每个UI都有自己的锚点,锚点分为4个部分,用4个三角形表示,各个UI也有4个控制点,在选择矩形工具的时候你可以清晰看到4个锚点和UI的4个控制点,如图所示:


这里Button是子控件,Canvas是子控件,一旦主控件被设置自动拉伸,子控件和锚点的距离(不是比例)将永远不变。在上述情况,则类似,这个Button被钉在左下角,同时补上3个不可被拉伸的钢丝,如下图所示:


这就同时让Button存在自适应的效果。所以对于四个角的Button分别设置其锚点,左上的Button锚点就弄到左上即可,左下的弄到左下……以此类推。

当锚点的四点合一的时候,你的UI就完全不会因为窗口改变而被压缩变形了,当然,他有超出你的父节点的可能。

当锚点的左右两边分开的时候,UI不会随着父节点的高的大小变化,而之后随着宽的大小变化。

当锚点上下两边分开的时候,UI不会随着父节点的宽的大小变化,而之后随着高的大小变化。

当锚点四点分开的时候,父节点物体大小的改变总是会影响到这个UI。

锚点的位置任何UI都可以被设置的。

下面再举个反例说明这个问题,比如左上的Button设置成锚点四点分开,如图:


会得到如下的情况:


因此,在做自适应屏幕的时候,大家要根据需要,合理选择锚点的位置。

其实理论上,Unity3D这锚点思想与C#窗体有点相似,关于C#窗体的思想,具体可以参考《【C#】用组件的Anchor属性解决最大化组件的缩放问题》(点击打开链接)。

转载地址:https://blog.csdn.net/yongh701/article/details/70212928

2014-01-06 22:44:55 y378076136 阅读数 16509

                        大致方法就是新建一个cube(cube最简单,所以用cube),把cube想象成模型的锚点,调整cube在模型中的位置,如图:




然后在hierarchy列表中将模型拖入cube中,选中cube,在软件左上角将模型中心点改为Pivot,如图:


OK,完成,试试选中cube对其进行旋转,看看是不是旋转轴和原来的不一样了大笑

2020-01-14 17:57:13 qq_19714407 阅读数 20

Unity3D UGUI锚点布局知识

好久没碰unity3d UGUI的东西了,刚好回顾下以前知识,做个总结

UGUI的锚点,布局概念

unity中的ui元素是有严格的父子关系的,子物体的位置是根据父物体的变化而变化的,而子物体和父物体联系的桥梁就是Anchor。ugui的UI控件都会有个RectTransform的组件,你可以从这个组件里获取锚点和布局信息,Anchor在Recttransform面板中表现为
两个值:anchorMax,anchorMin (默认左下角为0,0点,右上角为1,1点)
在这里插入图片描述
四个锚点在一起那么两个值就是:anchorMin(0.5,0.5),anchorMax(0.5,0.5)

我们再理解下绝对布局以及相对布局这两个概念,绝对布局如下图:在这里插入图片描述
在这附图上圈住的中间九种布局样式,它们上方的参数会是这几个PosX,PosY,PosZ,Width,Height参数,首先说说Width和Height,它俩个表示在这些绝对布局的情况下无论分辨率是多少,父物体多大,该UI元素的大小是恒定的,而剩下的PosX,PosY,PosZ表征的就是Pivot (接下来会有Pivot的讲解) 到锚点的距离

其他的样式都是相对布局,比如我们选最后一个布局样式,参数表现如下图:
在这里插入图片描述
left,right,top,bottom就代表了该UI控件左右上下边距离四个锚点所形成的锚框的左右上下边的距离,其他一些相对布局样式参数意义类似,不再熬述。

RectTransform 组件相关参数意义

1.pivot

如图所示,如果pivot 设置在左下角,就是(0,0),右上角就是(1,1),默认为正中心位置(0.5,0.5)
在这里插入图片描述

2.OffsetMax,OffsetMin

如图:在这里插入图片描述
这个OffsetMin的值就是UI元素的左下角的坐标,减去AnchorMin的值,得到一个从AnchorMin指向元素左下角的向量(vector2类型),这个OffsetMax的值就是UI元素的右上角的坐标,减去AnchorMax的值,得到一个从AnchorMax指向元素右上角的向量(vector2类型),那么这两个值有什么用呢,因为这两个值是可读可写的,所以在锚框的情况下我们可以在代码里面动态的去调整UI元素相对边界的距离,其次更重要的是,利用这这两个值就可以计算出sizeDelta的值了!

3.sizeDelta

sizeDelta=OffsetMax-OffsetMin,得到的是一个vector2类型的值,那么这个值在绝对布局和相对布局下的意义是什么呢?绝对布局下其实就代表了UI控件的长和宽,相对布局 大家结合上面两个参数的图例自行思考一下。

4.rect

rect中的属性,不与UI控件所在的位置有关,只和其自身属性相关,所以其中的width和height属性就可以让我们在任何情况下取得元素的大小

5.anchorPosition

在绝对布局下,anchorPositon表示的是pivot点在以锚点为坐标原点的坐标系下的坐标,如果在相对布局下表示的就是pivot点在以锚框中心点为坐标原点的坐标系下的坐标,我们可以通过改变anchorPosition的值直接改变UI控件位置,例如 在绝对布局下用代码 anchorPosition=new vector2(0,-100),它的效果如图:
在这里插入图片描述

2018-10-21 12:37:55 weixin_40769819 阅读数 572

PosX、PosY、PosZ:是物体相对父物体矩形框中心的偏移量 

custom:点击custom ,只改变锚点位置
按住Alt键,改变锚点在父物体的位置,也改变物体的位置
按住Shift键即改变物体锚点位置,也改变物体中心的位置

若锚点集中于一点,物体的大小不会随父物体的缩放改变
锚点绑定父物体四周,物体会和服务体一起缩放,速度比父物体缩放快,很容易翻转,物体和父物体相对位置不变
锚点绑定于物体本身四周,物体会和父物体等比例缩放,物体和父物体相对位置不变

Anchors:  锚点 是以父物体左下角为原点的比例值,确定了锚点和父物体的相对位置
Rotation  
Scale: 
UI的缩放和旋转是以物体中心点为为参考

物体大小、位置的确定
锚点--锚点和物体四个顶点的距离和角度 是固定值

要确定物体的位置,先要确定物体的锚点相对父物体的位置,在通过锚点确定物体的位置

若有错误,欢迎指正!

 

没有更多推荐了,返回首页