a | 范围的起始值。 |
b | 范围的结束值。 |
value | 要计算的范围内的点。 |
float 一个介于零和一之间的值,表示“value”参数在由 a 和 b 定义的范围内所处的位置。
确定 value
在两点之间的位置。
a 和 b 值定义线性数值范围的起始和结束。您提供的“value”参数表示可能位于该范围内的某个值。此方法计算“value”参数在指定范围内所处的位置。
如果“value”参数在范围内,则 InverseLerp 返回一个介于零和一之间的值,该值与该值在范围内的位置成正比。如果“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。