【问题标题】:unity Lerp alpha of text and keep the original color [duplicate]unity Lerp alpha 文本并保持原始颜色 [重复]
【发布时间】:2018-04-06 01:30:04
【问题描述】:

我试图为我的启动画面制作一个乒乓球彩色文本。我试图只更改 alpha 值并且我的颜色在运行时变成黑色。当试图在函数中分配颜色时,它变成了白色。你们能告诉我我做错了什么以及我应该如何正确设置颜色吗?

using UnityEngine;
using UnityEngine.UI;

public class LerpAlpha : MonoBehaviour {

    public float duration;
    float alpha;
    Text colorText;
    Color textColor;

    void LerpAlphaText()
    {
        float lerp = Mathf.PingPong(Time.time, duration) / duration;
        alpha = Mathf.Lerp(0.0f, 1.0f, Mathf.SmoothStep(0.0f, 1.0f, lerp));
        textColor.a = alpha;
        ///Also tried textColor = new Color(113, 75, 2, alpha); resulting in 
        ///the white text             
        colorText.color = textColor;
    }

    void Start()
    {
        colorText = GetComponent<Text>();
    }

    void Update ()
    {
        LerpAlphaText();
    }
}

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    Color 类的 RGBA 组件的范围为 0-1,因此Color(113, 75, 2, alpha) 将返回白色。通过 RGBA/255.0 缩放您的组件,或者只需将 Color textColor; 更改为 public Color textColor; 并在 Inspector 中进行设置。

    【讨论】:

    • 非常感谢!我以为范围是 0-255。
    • Color32 的范围为 255,但您设置的 .color 属性的类型为 Color,因此虽然可以使用 Color32,但它需要一个不是免费的隐式转换.
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 2020-06-27
    • 2021-01-18
    • 2014-10-09
    相关资源
    最近更新 更多