1.视口变动导致受锚点控制的Widget位置变化出现的问题
在播放UI特效的时候,发现Widget的位置不对;第一反应是因为canvasPanel不带有自动计算位置,所以以为是这个问题(根本没搞懂缩放以及锚点控制,以及自动的位置排布计算之间的不同)。
DPI(每英寸像素密度)device_solusion/design_solution,缩放是针对整个屏幕的分辨率来做的缩放调整,各控件的相对位置都是不变的;当像素密度大于设计分辨率时,进行放大;小于设计分辨率时进行缩小
锚点控制(以NGUI为例,是每一帧都会根据锚点目标对象调整位置)
而自动的位置排不计算,则是由Vertical Box , Horizon Box等自动进行排列的容器来进行调整的,其次内部的空间受控于Hide or Colls 从而决定是否在隐藏时作为控件进行位置的计算
Bug原因:目标Widget的Anchor节点是父节点0,0点;而父节点的anchor节点是父节点(目标Widget祖父)min_x:0,min_y:0, max_x:1,max_y:1。然后父widget会进行缩放,这样目标Widegt以左上角为锚点的位置就会出现问题(具体出现Offset的产生流程,挖个坑。);
解决方法:将目标Widget的Anchor节点设置为0.5,0.5,0.5,0.5,即:中心部分。(与界面中国其他的一些group(canvas)的锚点设置一样)