我们开发2D游戏的时候,一般只会设置setScale(x,y)前两个值,第三个z值,如果默认不设置就变成了0,这个不符合预期。一般情况下,轴的scale的默认值不应该都是1吗?做2D游戏很多时候由于z值变成0,导致了按钮无法响应。
不一定非得在原型上拓展的 可以以工具的形式使用 不过维护起来也有隐患就是了
自己重新包装一下这个接口应该可以
楼主的意思应该是,这本来就不应该由开发者自己去想方设法重载,本来就应该是1而不是0,因为已经影响按钮点击了
z 默认不设置,是取当前的 this._lscale.z 的值,而 this._lscale 是初始化为 (1, 1, 1) 的,如果你没有去改过 local scale z 分量,那么在你调用 setScale(2, 2) 的时候,z 分量应该是保持 1 的。
所以3.x经常出现的z变成0然后点不到按钮的原因应该是Vec3初始化的z默认值为0原因吧
对,那可能是用了 setScale(new Vec3(2, 2)); 这样设置,就会导致 z 变成 0 了。
因为 new Vec3 不传递第三个参数,那么默认是 0,Vec3 不知道它是承载 scale 还是其它(position 等),所以它不知道 scale z 应该是 1。
1赞
了解,感谢解惑~