(Unity) Slider NaN
포스트
취소

(Unity) Slider NaN

UI 작업을 하는 중 Slidervalue를 코드에서 관리해주려는데 Slider가 작동을 하지 않는다.

원인은 value의 값이 NaN으로 되어있어 다른 값으로 변경 자체가 불가했다.

NaN이란?

NaNNot-a-Number의 약자로 숫자로 표현할 수 없는 값을 뜻한다.

이런 이유 때문에 NaN 된다는건 숫자를 바꿀 수 없는 상황이니 사전에 차단을 해줘야한다.

💻 코드

Update를 통해 무한 반복이 될때 slider.value의 값이 NaN으로 들어가지 않도록 차단하는 코드이다.

코루틴을 통해 2초뒤에 exp값이 slider.value에 정상적으로 들어가게 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class SliderTest : MonoBehaviour
{
    float exp = 0;
    float addExp = 20;

    Slider slider;
    
    void Start()
    {
        slider = GetComponent<Slider>();
        StartCoroutine(AddCoroutine());
    }

    void Update()
    {
        // [ 이 글의 핵심 코드 ]
        if (float.IsNaN(exp) == true)
            slider.value = 0;
        else
            slider.value = exp;
    }

    IEnumerator AddCoroutine()
    {
        yield return new WaitForSeconds(2f);

        exp += addExp;
    }
}


💡 참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.