【已解决】3.8精灵位置变化但不重新渲染

  • Creator 版本: 3.8.4

  • 目标平台: Web移动端

萌新真诚求教。我期望使这些蓝色球持续从屏幕上坠落,它们的position的确更改了,但在屏幕上没有变。除非显式地将其禁用再启用,否则无效。可能这个问题比较简单,我没有搜索到。希望有路过的大佬指点我一下。
代码段如下:
@ccclass(‘Spawner’)

export class Spawner extends Component {

@property({ type: Node, displayName: '地图节点' })
public mapNode: Node = null!;
// 移动所有节点

public moveAllNodes(moveStep: Vec3) {
this.mapNode.children.forEach(child => {
const newPosition = child.position.subtract(moveStep);
child.setPosition(newPosition);
});
// this.mapNode.active = false;
// this.mapNode.active = true;
}
我在update中调用了这个函数,产生的结果如下:
节点树,在Map下有若干精灵节点
节点树
蓝框里的是一个精灵节点,很显然,它不应该在那里

用 3.8.5 打开试试呢。

具体原因,解释起来有点复杂,反正 用 3.8.5 就 OK 了。

3赞

const newPosition = v3(child.position.x, child.position.y).subtract(moveStep);
child.setPosition(newPosition);

1赞

这样试试,我今天3.8.4也遇到这个问题了

这样确实可以,但是性能不好。

谢谢亲,这应该有用。不过我现在已经解决了。我让别人拉取了我的仓库,进行了我的操作,结果他那边能正常运行。我也就重新来了一遍,竟然成功了 :flushed:,不知道为什么。

谢谢亲,这应该有用。不过我现在已经解决了。我让别人拉取了我的仓库,进行了我的操作,结果他那边能正常运行。我也就重新来了一遍,竟然成功了 :flushed:,不知道为什么。
过两天会升级cocos3.8.5,现在我对新版本的稳定情况、bug多不多还有点顾虑。
再次感谢您的解答。

3.8.5 修复了非常多的3.8.4带来的小问题。

:rofl:

我今天也遇到了 :rofl: 搞了半天,最后也是换版本好的