问一下大家,这算不算bug?

  • Creator 版本: 3.8.7

  • 目标平台: 开发时期 Edge 浏览器

有这么个现象,用代码创建Node并添加Sprite设置图片后,使用addComponent(UITransform)设置大小,整体显示的图片大小随之改变,但重新为Sprite设置其它图片后,整体显示的图片变成此新图片的原始大小了,需要再次使用addComponent(UITransform)设置大小,使用getComponent(UITransform)设置尺寸无效,请问一下,这个现象是正常设计还是bug?

sprite 组件 sizemode 应该用 custom, 这样就不会根据图片自动改节点大小了

谢谢!
不过这写法还是某些时候不生效,比如我这么写:
const sprite: Sprite = this.bgNode.getComponent(Sprite) || this.bgNode.addComponent(Sprite);
if (sprite.sizeMode !== Sprite.SizeMode.CUSTOM) {
sprite.sizeMode = Sprite.SizeMode.CUSTOM;
}
sprite.spriteFrame = bgImg;
let bgTf: UITransform = this.bgNode.getComponent(UITransform);
if (!bgTf) {
bgTf = this.bgNode.addComponent(UITransform);
bgTf.setContentSize(size, size);
}

我晓得了,设置了Sprite.SizeMode.CUSTOM,为sprite设置图片后,仍然需要每次调用setContentSize(size, size);

原因就是:添加2D渲染组件会自动添加UITransform组件,所以你这if会不生效