Unity3D에서 난수 생성

Aimen Fatima 2024년2월15일
Unity3D에서 난수 생성

이 튜토리얼에서는 unity3d에서 난수를 생성하는 방법을 설명합니다. floatint 반환 유형을 사용하여 난수 생성기를 구현하고 예제를 통해 실행 동작을 살펴봅니다.

Unity3D의 난수 생성기

UnityEngine.Random은 내장 메서드인 Range()를 제공하여 난수를 생성합니다. 안타깝게도 Range() 메서드는 unity3d에서 intfloat 데이터 유형 모두에 대해 오버로드되었습니다.

float 또는 int 데이터 유형을 매개변수로 전달하여 이 메소드를 호출할 수 있습니다. 이 함수의 매개변수는 하한과 상한을 지정하여 난수의 범위를 정의합니다.

다음은 float 반환 유형에 대한 UnityEngine.Random.Range 함수의 정의입니다.

public static float Range(float minValue, float maxValue);

Range() 메서드는 [minValue to maxValue] 내에서 임의의 float 숫자를 반환합니다. 이 방법은 maxValueminValue보다 작은 경우 값을 교환합니다.

float Range() 메서드에는 하한과 상한이 포함됩니다. 예를 들어 Random.Range(1.2f,5.2f)는 극단을 포함하여 1.25.2 사이의 숫자를 반환합니다.

다음은 int 반환 유형에 대한 UnityEngine.Random.Range 함수의 정의입니다.

public static int Range(int minValue, int maxValue);

이 메서드는 [minValue ~ maxValue] 범위 내의 임의의 정수를 반환합니다. 다음 동작은 이 메서드가 실행되는 방식입니다.

  • 상한선은 이 방법에 포함되지 않습니다. 예를 들어 Random.Range(-5, 5)-54 사이의 값을 반환합니다.
  • minValuemaxValue가 모두 같으면 상한값은 제외되고 메서드는 하한값, 즉 minValue를 반환합니다.
  • maxValueminValue보다 작으면 숫자가 자동으로 바뀝니다.

Unity3D 프로젝트에서 이 두 가지 방법을 모두 구현할 것입니다. 다음은 이러한 기능을 구현하는 전체 데모입니다. 그러나 먼저 프로세스를 단계별로 따라 가겠습니다.

  • 새 프로젝트 만들기

    새로운 유니티 프로젝트를 생성합니다. 기본적으로 샘플 장면이 생성됩니다.

  • 3D 게임 개체 만들기

    계층 창에서 마우스 오른쪽 버튼을 클릭하여 장면에 3D 게임 개체를 만듭니다.

    unity3d - 3d 게임 개체에서 임의의 숫자 생성

  • float 난수 생성기를 생성하는 C# 스크립트 만들기

    프로젝트 창에서 마우스 오른쪽 버튼을 클릭하여 새 C# 스크립트를 만듭니다. 그런 다음 새로 생성된 스크립트에 다음 코드 스니펫을 작성합니다.

    unity3d에서 난수 생성 - 스크립트

    다음 코드 스니펫은 float 난수 생성기를 설명합니다. 이 코드 스니펫은 -5.05.0 범위 내에서 생성된 난수를 추가하여 x 방향으로 gameObject를 이동합니다.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class RandomNumberGenerator : MonoBehaviour {
      public GameObject gameObject;
      float xOffset = 0.0f;
    
      void OnGUI() {
        xOffset = Random.Range(-5.0f, 5.0f);
        if (GUI.Button(new Rect(10, 300, 100, 50), "MOVE")) {
          gameObject.transform.position =
              new Vector3(gameObject.transform.position.x + xOffset, gameObject.transform.position.y,
                          gameObject.transform.position.z);
        }
      }
    }
    
  • 게임 오브젝트에 스크립트 첨부

    씬에서 생성된 게임 오브젝트에 스크립트를 첨부합니다. 그런 다음 게임 개체를 계층 구조에서 드래그하여 스크립트에 전달합니다.

    unity3d에서 난수 생성 - float 스크립트

  • 게임 실행

    게임을 실행하고 Game View에서 Move 버튼을 눌러 게임 오브젝트의 위치를 변경합니다.

  • 빈 게임 개체 만들기

    정수형 난수 생성기를 구현하기 위해 장면에 빈 게임 개체를 만듭니다.

    unity3d에서 난수 생성 - 빈 게임 개체

  • int 난수 생성기를 생성하는 새 C# 스크립트 만들기

    새 C# 스크립트를 다시 만들고 스크립트에 다음 코드를 작성합니다. 이 코드 펜스는 14(정수) 사이의 난수를 생성하고 0을 포함하여 내림차순 값을 인쇄합니다.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class IntRNG : MonoBehaviour {
      void Start() {
        int x = Random.Range(1, 5);
        for (int i = x; i >= 0; i--) {
          print(i);
        }
      }
    }
    
  • 빈 객체에 스크립트 첨부

    씬에서 생성된 빈 게임 오브젝트에 위의 스크립트를 첨부합니다.

    unity3d에서 난수 생성 - int 스크립트

  • 게임 실행

    게임을 실행하고 콘솔 창을 확인하여 출력을 확인하십시오. 자세한 내용은 Unity3D 난수 생성기를 참조하세요.