본문 바로가기

Unity3D/C#

유니티 범위 안에 있는 랜덤 값 뽑기 (INT, FLOAT)

반응형

RANDOM FLOAT INT

 

 

 

인생은 도박이라는 말이 있듯이 우리 주변에 행운은 항상 따라다닙니다. 행운이라는 것은 경우의 수 중 한 가지 경우의 수가 선택을 했는데 좋은 경우의 수를 뽑았을 때를 말하고 불운은 그 반대로 안 좋은 경우의 수를 뽑았을 때입니다. 결국 운이라는 것은 수많은 경우의 수에서 한 가지를 선택해서 결과를 보는 것이라고 볼 수 있습니다. 우리가 많이 하는 복불복 게임이나 사다리 타기 게임, 등 다양한 게임들이 모두 운에 따라 결정되는 게임입니다. 게임 안에서 행운의 상자를 열거나 강화를 하거나 하는 것들 모두 운과 관련된 요소를 포함하고 있습니다. 현재 세상에서는 우리가 운을 조절할 수 없지만 프로그램 상에서는 우리가 운을 마음대로 조작할 수 있습니다. 이런 원리는 기본적으로 랜덤이라는 개념을 사용하는데 유니티에서는 랜덤 관련 함수가 있어서 쉽게 경우의 수를 뽑을 수 있습니다. 랜덤 함수에도 다양한 종류가 있지만 이번 예시에서 살펴볼 함수는 범위를 정하고 그 범위 안에 있는 실수(float)와 정수(int)를 뽑아보겠습니다. 

 

 

C# (UNITY 3D)

 

 

 

Decimal 값을 입력(float, int, 등) 해서 Random 버튼을 누르면 그 사이의 값을 Int와 Float을 반환하는 예시입니다. Int 랜덤 함수는, 원래는 최댓값을 포함하지 않지만 최댓값에 1을 더하여 포함되게 했습니다. 예를 들어 0~1을 입력하면 원래는 0만 나와야 맞지만 0, 1 모두 입력하게 처리했습니다.

 

 

 

using UnityEngine.UI;

 

Text와 Button을 사용하기 위해 UnityEngine.UI 사용

 

 

할당

각 컴포넌트에 대한 게임 오브젝트 각 변수에 할당

 

 

 

 

 

    public InputField inputfield_start;
    public InputField inputfield_end;
    public Text text_INT;
    public Text text_FLOAT;
    public Button button_random;


    void Start()
    {
        Init_UI();
    }
   
    private void Init_UI()
    {
        button_random.onClick.RemoveAllListeners();
        button_random.onClick.AddListener(Funciton_Random);

        inputfield_start.text = "0";
        inputfield_end.text = "1";

        inputfield_start.contentType = InputField.ContentType.DecimalNumber;
        inputfield_end.contentType = InputField.ContentType.DecimalNumber;
    }

    //CodeFinder 코드파인더
    //From https://codefinder.janndk.com/ 
    private void Funciton_Random()
    {
        float start = float.Parse(inputfield_start.text);
        float end = float.Parse(inputfield_end.text);

        int random_int = Random.Range(Mathf.CeilToInt(start), Mathf.FloorToInt(end) + 1);
        text_INT.text = random_int.ToString();

        float random_float = Random.Range(start, end);
        text_FLOAT.text = random_float.ToString();

        Debug.LogFormat("random_int : {0}, random_float : {1}", random_int, random_float); 
    }  

 

변수(variable)

inputfield_start : 최솟값
inputfield_end : 최댓값
text_INT : 정수 랜덤 값 표시
text_FLOAT : 실수 랜덤 값 표시
button_random : Funciton_Random 함수 실행

 

함수(function)

Init_UI : 인풋 필드, 버튼 기능, 등 UI 관련 초기화
Funciton_Random : 랜덤 버튼을 눌렀을 때 범위 안에 있는 int와 float에 대한 랜덤 값 추출해서 표시

 

 

 

DecimalNumber / ContentType / Random.Range / Mathf.FloorToInt / Mathf.CeilToInt 

 

 

 

 

반응형