统一Lerp alpha文本并保持原始颜色

时间:2018-04-06 01:30:05

标签: c# unity3d

我试图为我的启动画面制作一个乒乓彩色文字。我试图改变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();
    }
}

1 个答案:

答案 0 :(得分:0)

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