微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

褪色 TextMeshPro Alpha 瞬间褪色

如何解决褪色 TextMeshPro Alpha 瞬间褪色

我尝试使用 LeanTween,现在编写了我自己的协程,但它们都不起作用。目标是让 TextMeshPro 元素的文本在一段时间内淡入/淡出,这应该很简单,但显然不是。这是协程:

private IEnumerator FadeText(float target,float duration) {
        Color color = text.color;
        float timer = 0f;
        float alpha = color.a;
        while(timer < duration) {
            timer += Time.deltaTime;
            print($"{timer / duration}% is: {Mathf.Lerp(alpha,target,timer / duration)}");
            color.a = Mathf.Lerp(alpha,timer / duration);
            text.color = color;

            yield return new WaitForEndOfFrame();
        }
    }

Debug.Log 显示正确的值(在所需的持续时间内从 0 到 255,反之亦然)但文本只是弹出。这是上面的代码的样子(再次:使用 LeanTween 有相同的结果) : Example

文本“upgrades”应该在 5 秒内淡入淡出,在 0.4 秒内淡出。

我错过了什么吗?

解决方法

查看API -> Color

每个颜色分量都是一个浮点值,范围从 0 到 1。

原始颜色类型应该是 Color32 在哪里

每个颜色分量都是一个字节值,范围从 0 到 255。

所以要么

  • 使用 Color32ColorColor32 之间存在隐式转换,因此您基本上可以使用它们进行交换,请参阅 Color32.ColorColor32.Color32 )

  • 或者只是将输入值更改为 float0 之间的 1

,

事实证明,颜色在内部使用 0 到 1 之间的值,而不是我一直认为的 0 到 255 之间的值。将上面的代码与 0 和 1 一起使用可以按预期工作。 LeanTween 版本也是如此。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。