将Cocos升级到2.0.7后,scale行为不一致

  • Creator 版本:2.0.7

  • 目标平台: Web

为了解决WebView错位问题,详见(https://forum.cocos.com/t/webview-widget/72075),我将Cocos Creator从2.0.5升级到了2.0.7。升级之后其它功能ok,但scale属性的行为并不一致,详情见下。

功能:基于Prefab动态生成节点,并使用Layout Grid布局。

核心代码:

let resourceNode = cc.instantiate(this.resourcePrefab);
resourceNode.scale = 1;
resourceNode.setParent(this.node);

注意,这里的scale为1。

在2.0.5中渲染没问题:

resourceNode.scale = 1;更改为resourceNode.scale = 0.5;,效果如下:

这里的效果确实是我想要的。即,缩放元素,Layout自动适应。

但是在2.0.7中,行为发生了变化!!!

首先看看scale为1时的情况:

ok,没有问题,效果如初。

resourceNode.scale = 1;更改为resourceNode.scale = 0.5;,效果如下:

可以看到整个元素所占的大小和位置并没有变化,只是里面的元素全部缩小了,和2.0.5版本中的行为并不一致。

工程附件:scale-problem.zip (587.0 KB)


一点后话。我做Cocos开发时间不长,但在使用Cocos

Creator进行开发的时候,真的经常感觉一种无力感。这种无力感不是因为自己完成不了需求,做不出来效果而产生,真的是因为Cocos这个框架本身。本来只是需要解决WebView错位问题,可按下葫芦起了瓢,现在又需要解决scale行为不一致的问题。大量的时间和精力耗费在框架本身上,连小版本号更新都有这样的Break
Change,我们这些开发者对Cocos的信心到底从何而来呢?

你这个应该是 Layout 的问题,你需要勾选 Layout 组件上的

勾选 affectscale 即可,已反馈过这个问题:
https://forum.cocos.com/t/2-0-7-layout-bug/72088

帮忙看看这个问题:
https://forum.cocos.com/t/2-0-7-helloworld-android-build-as/72213

好的。

多谢了。唉,要是能早点发现你这个帖子就好了。