Unity3D에서 난수 생성
이 튜토리얼에서는 unity3d에서 난수를 생성하는 방법을 설명합니다. float
및 int
반환 유형을 사용하여 난수 생성기를 구현하고 예제를 통해 실행 동작을 살펴봅니다.
Unity3D의 난수 생성기
UnityEngine.Random
은 내장 메서드인 Range()
를 제공하여 난수를 생성합니다. 안타깝게도 Range()
메서드는 unity3d에서 int
및 float
데이터 유형 모두에 대해 오버로드되었습니다.
float
또는 int
데이터 유형을 매개변수로 전달하여 이 메소드를 호출할 수 있습니다. 이 함수의 매개변수는 하한과 상한을 지정하여 난수의 범위를 정의합니다.
다음은 float
반환 유형에 대한 UnityEngine.Random.Range
함수의 정의입니다.
public static float Range(float minValue, float maxValue);
Range()
메서드는 [minValue to maxValue]
내에서 임의의 float
숫자를 반환합니다. 이 방법은 maxValue
가 minValue
보다 작은 경우 값을 교환합니다.
float
Range()
메서드에는 하한과 상한이 포함됩니다. 예를 들어 Random.Range(1.2f,5.2f)
는 극단을 포함하여 1.2
와 5.2
사이의 숫자를 반환합니다.
다음은 int
반환 유형에 대한 UnityEngine.Random.Range
함수의 정의입니다.
public static int Range(int minValue, int maxValue);
이 메서드는 [minValue ~ maxValue]
범위 내의 임의의 정수를 반환합니다. 다음 동작은 이 메서드가 실행되는 방식입니다.
- 상한선은 이 방법에 포함되지 않습니다. 예를 들어
Random.Range(-5, 5)
는-5
와4
사이의 값을 반환합니다. minValue
와maxValue
가 모두 같으면 상한값은 제외되고 메서드는 하한값, 즉minValue
를 반환합니다.maxValue
가minValue
보다 작으면 숫자가 자동으로 바뀝니다.
Unity3D 프로젝트에서 이 두 가지 방법을 모두 구현할 것입니다. 다음은 이러한 기능을 구현하는 전체 데모입니다. 그러나 먼저 프로세스를 단계별로 따라 가겠습니다.
-
새 프로젝트 만들기
새로운 유니티 프로젝트를 생성합니다. 기본적으로 샘플 장면이 생성됩니다.
-
3D 게임 개체 만들기
계층 창에서 마우스 오른쪽 버튼을 클릭하여 장면에 3D 게임 개체를 만듭니다.
-
float
난수 생성기를 생성하는 C# 스크립트 만들기프로젝트 창에서 마우스 오른쪽 버튼을 클릭하여 새 C# 스크립트를 만듭니다. 그런 다음 새로 생성된 스크립트에 다음 코드 스니펫을 작성합니다.
다음 코드 스니펫은
float
난수 생성기를 설명합니다. 이 코드 스니펫은-5.0
과5.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); } } }
-
게임 오브젝트에 스크립트 첨부
씬에서 생성된 게임 오브젝트에 스크립트를 첨부합니다. 그런 다음 게임 개체를 계층 구조에서 드래그하여 스크립트에 전달합니다.
-
게임 실행
게임을 실행하고 Game View에서
Move
버튼을 눌러 게임 오브젝트의 위치를 변경합니다. -
빈 게임 개체 만들기
정수형 난수 생성기를 구현하기 위해 장면에 빈 게임 개체를 만듭니다.
-
int
난수 생성기를 생성하는 새 C# 스크립트 만들기새 C# 스크립트를 다시 만들고 스크립트에 다음 코드를 작성합니다. 이 코드 펜스는
1
과4
(정수) 사이의 난수를 생성하고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 난수 생성기를 참조하세요.