Mathf.InverseLerp
Declaration
public static float InverseLerp(float a, float b, float value);Параметры
| Параметр | Описание |
|---|---|
| a | Начало диапазона. |
| b | Конец диапазона. |
| значение | Точка в диапазоне, которую требуется вычислить. |
Возвращаемое значение
поплавок Значение от нуля до единицы, указывающее положение параметра «value» в диапазоне, заданном a и b.
Описание
Определяет, где value лежит между двумя точками.
Значения a и b задают начало и конец линейного числового диапазона. Передаваемый параметр «value» представляет значение, которое может находиться внутри этого диапазона. Метод вычисляет, в каком месте указанного диапазона находится параметр «value».
Если «value» лежит внутри диапазона, InverseLerp возвращает число от нуля до единицы, пропорциональное позиции «value» в диапазоне. Если «value» лежит вне диапазона, InverseLerp возвращает ноль или единицу в зависимости от того, находится ли оно перед началом или после конца диапазона.
using UnityEngine;
public class ExampleClass : MonoBehaviour { public float start = 20.0f; public float end = 40.0f; public float currentProgress = 22.0f;
void Start() { // the progress between start and end is stored as a 0-1 value, in 'i' float i = Mathf.InverseLerp(start, end, currentProgress);
// this will display "Current progress: 0.1 or 10%" in Console window Debug.Log("Current progress: " + i + " or " + i * 100 + "%");
// the needle of an on-screen dial could then be set to a // rotational angle out of 360 degrees, based on the progress. float dialNeedleAngle = i * 360;
//// this will display "Needle angle: 36" in Console window Debug.Log("Needle angle: " + dialNeedleAngle); } }
Дополнительные ресурсы: ,Lerp,.