Есть код, для плавной смены цвета Image
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.UI;
public class changeColorGeometryMainMenu : MonoBehaviour
{
Image deadLineRenderer;
[SerializeField] [Range(0f, 1f)] float lerpTime;
[SerializeField] Color[] newDeadLineColor;
int colorIndex = 0;
float t = 0f;
int len;
private void Start()
{
deadLineRenderer = GetComponent<Image>();
len = newDeadLineColor.Length;
}
private void Update()
{
deadLineRenderer.color = Color.Lerp(deadLineRenderer.color, newDeadLineColor[colorIndex], lerpTime * 2 * Time.deltaTime);
t = Mathf.Lerp(t, 1f, lerpTime * 2 * Time.deltaTime);
if (t > 0.9f)
{
t = 0f;
colorIndex++;
colorIndex = (colorIndex >= len) ? 0 : colorIndex;
}
}
}
using UnityEngine.UI;
public class changeColorGeometryMainMenu : MonoBehaviour
{
Image deadLineRenderer;
[SerializeField] [Range(0f, 1f)] float lerpTime;
[SerializeField] Color[] newDeadLineColor;
int colorIndex = 0;
float t = 0f;
int len;
private void Start()
{
deadLineRenderer = GetComponent<Image>();
len = newDeadLineColor.Length;
}
private void Update()
{
deadLineRenderer.color = Color.Lerp(deadLineRenderer.color, newDeadLineColor[colorIndex], lerpTime * 2 * Time.deltaTime);
t = Mathf.Lerp(t, 1f, lerpTime * 2 * Time.deltaTime);
if (t > 0.9f)
{
t = 0f;
colorIndex++;
colorIndex = (colorIndex >= len) ? 0 : colorIndex;
}
}
}
Всё вроде бы работает, цвета меняются, но почему-то с течением времени, уменьшается альфаканал и Image становится прозрачным. Подскажите, как зафиксировать альфаканал, чтобы он всегда оставался 255. Заранее спасибо)