你看引擎的 UIRenderer
如果在 GameView 使用 tween 对组件的 color 进行缓动,会走进来这里
set color(value) {
if (this._color.equals(value)) {
return;
}
this._color.set(value);
this._updateColor();
if (EDITOR) {
const clone = value.clone();
this.node.emit(NodeEventType.COLOR_CHANGED, clone);
}
}
而 tween 是构造一个假对象进行缓动,并没有 clone 函数。
那么有两种修改方法:
1.tween 不再构造一个假对象
2.按照你说的,拆分脚本,把 UIRenderer 的 executeInEditMode 去掉,咱再搞一个 UIRendererInEditor
你觉得哪种方法好?
你有没有觉得改成 EDITOR && !PREVIEW 是最方便的了?
或者你还是怪 tween 构造了个假对象?
我,觉得这两个问题都好扯