'특정한 최솟값과 최대값을 범위로 가지는 수'의 최솟값과 최대값을 변경했을때 범위의 비율에 맞춰 값을 계산하는 것을 Remap이라고 표현한다.
ex) 만약 0~30의 범위안에 '20'이라는 숫자는 범위를 (-15) ~ 40 사이로 변경하면 약 21.666이 된다.
이처럼 범위를 변경하되 비율에 맞게 값을 재계산한다.
작업을 하다가 게임내의 시간의 변화를 기록할 float자료형인 변수 GameTime을 만들었고, 최솟값과 최대값이 0~24사이의 값을 가지는 변수로 사용했다.
(코드내에서 GameTime이라는 변수는 0~24사이의 값만 가지게되어있음)
그리고 GameTime이 0에서 24까지 변화함에 따라 게임내의 조명의 밝기가 0에서 100까지 커지게 만들고자 했다.
그래서 아래와 같이 remap이라는 함수를 사용했다.
사용한 코드 예시
void Update()
{
Debug.Log(remap(GameTime,0,24,0,100));
}
public static float remap(float val, float in1, float in2, float out1, float out2) //리맵하는 함수
{
return out1 + (val - in1) * (out2 - out1) / (in2 - in1);
}
remap함수에 5개의 인자값을 넣어야함.
remap(변수, 변수의 최솟값, 변수의 최대값, 변경할 최솟값, 변경할 최대값)
'툴 > 유니티' 카테고리의 다른 글
유니티 2020 버전 Webgl 무한로딩 문제 (1) | 2021.08.16 |
---|---|
유니티 Webgl 실행시 웹브라우저의 URL주소 받기 (0) | 2021.08.16 |
[C#] 유니티 웹에 있는 데이터 가져오기 (0) | 2021.08.11 |
Input.GetKey 에러 (2) | 2021.08.11 |
[C#] 유니티 마우스 후킹, 마우스 제어하기 (0) | 2021.08.02 |