mapValue 함수 :
float mapValue( float inVal, float inFrom, float inTo, float outFrom, float outTo )
{
float inScale = (inFrom != inTo)
? ( ( inVal - inFrom ) / ( inTo - inFrom ) )
: 0.0f;
float outVal = outFrom + ( inScale * ( outTo - outFrom ) );
outVal = (outFrom < outTo )
? clamp( outVal, outFrom, outTo )
: clamp( outVal, outTo, outFrom );
return outVal;
}
값을 가져 와서 범위 내의 비율로 변환 한 다음 다른 범위를 기준으로 배율을 조정합니다. 이중 장갑처럼.
이것을 사용하여 물건을 표준화 할 수 있습니다 :
float minDamage = 0.0f; float maxDamage = 300.0f;
float normalisedDamage = mapValue(damange, minDamage, maxDamage, 0.0f, 1.0f);
또는 한 범위에서 다른 범위로 변환 할 수 있습니다.
float brakeStrength = mapValue(timeToCollision,
0.0f, 10.0f, // seconds
1.0f, 0.2f // brake values
);
두 번째 예에서 범위 밖의 범위는 범위 내와 다릅니다.
많이 보이지는 않지만, 나는이 작은 친구를 사방에 사용합니다.