Creator 3D 1.2.0 BUG:Tween 对 Color 无效

版本 1.2.0

在浏览器控制台中运行如下代码:

let a = new cc.Color(0,0,0,0);
cc.tween(a)
    .to(1, new cc.Color(255,255,255,255),{
        onUpdate: v=>{ console.log(v.r, v.g, v.b, v.a) }
    })
    .start();

如图:

1赞

写错了,to(1, { r:255, g:255, b:255 }

1赞

to(1, new cc.Vec4(1,1,1,1) 也行,就是Color不行

1赞

有什么曲线救国的方法吗 除了自己写timer做插值 之前的tween tendto 都干掉了 就留一个bug 是在劝退吗

cc.Color 比较特殊,它将 rgba 编码到了一个 number 上,目前还没想到有什么好办法来处理,可以参考下帖

camera不知道 直接使用tween修改color的rgb无效

请问针对这个问题引擎有计划修改吗?

比如 Color 改为编码到 r、g、b、a 上,或者 Tween 针对 Color 特殊处理一下?

毕竟 Color 的 Tween 还是挺常用的。

    let sprite = this.node.getComponent(Sprite) as Sprite;
    sprite.color = new Color(255, 255, 255, 255);
    let color = new Color(255, 255, 255, 0);
    let curColor = new Color();
    let tween = new Tween(sprite);
    tween
      .to(1, {}, {
        onUpdate: (target, ratio: number) => {
          sprite.color = Color.lerp(curColor, Color.WHITE, color, ratio);
        }
      })
      .call(() => {
        this.node.active = false;
      })
      .start();

我说这个color我上次用的时候,也很奇怪呢。但是我没注意这个东西,直接就在update里自己算差值了。

1赞