Color32.LerpUnclamped
Declaration
public static Color32 LerpUnclamped(Color32 a, Color32 b, float t);Параметры
| Параметр | Описание |
|---|---|
| a | Начальный цвет, возвращаемый, когда t = 0. |
| b | Конечный цвет, возвращаемый при t = 1. |
| t | Коэффициент интерполяции. Коэффициент не будет закреплен и может находиться вне диапазона [0; 1]. |
Возвращаемое значение
Color32 Цвет, полученный в результате линейной интерполяции между и a и b.
Описание
Линейная интерполяция между цветами a и b с использованием коэффициента интерполяции t.
t закрепляется между 0 и 1. Когда t равняется 0, функция возвращает a. Когда t равняется 1, функция возвращает b.
Если t меньше 0 или больше 1, результат будет линейно экстраполирован из a и b. Например, Color32.LerpUnclamped(new Color32(0, 0, 0, 0), new Color32(50, 50, 50, 50), 3) возвратит цвет, указанный new Color32(150, 150, 150, 150).
Поскольку Color32 хранит каждый цветовой канал в виде байта, незакрепленная интерполяция может привести к переполнению или переполнению целых чисел, что приведет к тому, что интерполированное значение будет перевернуто и останется в диапазоне байта. Например, Color32.LerpUnclamped(new Color32(0, 0, 0, 0), new Color32(200, 200, 200, 200), 2) возвратит цвет, указанный new Color32(144, 144, 144, 144), потому что (200 * 2) mod 256 = 144.
Нижеследующий скрипт установит цвет MeshRenderer на результат незакрепленной интерполяции с использованием параметров, указанных в инспекторе. Чтобы использовать скрипт, прикрепите его к GameObject с MeshRenderer.
using UnityEngine;
[RequireComponent(typeof(MeshRenderer))] public class ColorLerp : MonoBehaviour { public Color32 colorA = Color.white; public Color32 colorB = Color.red; public float interpolationRatio = 0.5f;
private Material material;
private void Start() { material = GetComponent<Renderer>().material; }
void Update() { material.color = Color32.LerpUnclamped(colorA, colorB, interpolationRatio); } }
Дополнительные ресурсы: ,Lerp,.