美文网首页
关于Unity UI翻转的问题

关于Unity UI翻转的问题

作者: FindCrt | 来源:发表于2017-03-05 11:57 被阅读275次

    demo地址,里面UIRevertTest场景

    之前在项目中发现UI布局错乱,原本在左上角的东西跑到了右下角,原本在下面的跑到了上面,最后发现是UI翻转的问题。

    假设现在有这样的UI结构


    UI目录

    然后button的布局信息是这样的:

    button位置信息

    那么button应该在panel的左上角。因为锚点在左上角,而posX和posY都很小。可实际button在左下角去了,如图:

    button位置

    而且注意锚点的位置,在视觉上就是右下角。这就很奇怪,为什么?

    因为button的父控件panel翻转了

    怎么翻转?只要拖住左上角的点,把它往右下角拉,直到超过原本右下角的点就好了。也就是说现在你看到的右下角其实并不是右下角,而是正常状态的左上角。

    翻转UI

    而翻转有什么迹象可以一眼看出来?

    翻转的控件会有红色的对角线标识出来,主意看第二张图

    UI预制件问题

    还有一个相关的问题,就是如果UI制作成预制件,如果进行这样的操作就会出问题:
    把预制件拖进场景查看,然后再拖进Cavas

    预制件的scale会发生变化。准确说,是CavasRender Mode设为Screen Space - Camera的时候,因为这个时候,Cavas的scale是缩小的。

    Screen Space - Camera的时候,Cavas的实际大小根据距离相机的距离来算,而它数据里的大小是屏幕大小,而一般屏幕大小都很大,所以这时Cavas的scale就很小了。

    scale很小,导致预制件从其他位置拖到Cavas下,而不是直接放到Cavas下面,Unity在修改parent transform的时候会自动修改物体的数据来保证它显示大小和原来一样,那么父物体缩小了,子物体就会调整放大,保持和原来一致。

    这一切都没有问题,但如果这个时候你修改了预制件,然后Apply了,就悲剧了

    相关文章

      网友评论

          本文标题:关于Unity UI翻转的问题

          本文链接:https://www.haomeiwen.com/subject/tuusgttx.html