Random.Range() 함수는
Random.Range(0, max);
했을 때, 0~(max-1)의 랜덤 값을 반환합니다.
개인적인 생각으로는 유니티는 리스트등의 개수를 받아서 인덱스로 바로 쓸 수 있도록 하려는 목적 같아 보입니다만..
( C#은 Count, Length등 대부분 배열에서 프로퍼티로 개수를 반환하고 있습니다. [예] Random.Range(0, List.Count); )
아무튼 max값은 반환하지 않습니다.
이런 이유로 NGUI는 NGUITools.cs 스크립트에 보시면
static public int RandomRange (int min, int max)
{
if (min == max) return min;
return UnityEngine.Random.Range(min, max + 1);
}
이렇게 max에 +1을 일부러 하고 있는 랜덤 함수를 직접 만들어서 쓰고 있습니다.
랜덤 함수를 사용할 때는 max값이 나와야 되는지 마는지 한 번 생각해보고 쓰는 게 좋을 것 같습니다.
P.s. 제가 처음에 Random.Range() 함수를 쓰면서 입력한 max값이 안나오는 것 같아서 확인해보고 올려봅니다.
아시는 분들은 다들 아시고 쓰시겠지만, 혹시나 모르시는 분들을 위해 올려봅니다.
[추가]
추가적으로... 함수 파라미터가 int일 경우는 max값이 안나오는 게 맞구요 static function Range (min : int, max : int) : int Description - Returns a random integer number between min [inclusive] and max [exclusive] (Read Only). float일 경우에는 max값이 나옵니다. static function Range (min : float, max : float) : float Description - Returns a random float number between and min [inclusive] and max [inclusive] (Read Only).