Menu
CoddyTech

무작위 생성

Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 85개 중 68번째.

Random.Range(min, max)는 난수를 선택하며, 반환될 수 있는 값은 전달하는 숫자의 유형에 따라 달라집니다. float에서는 양 끝값을 모두 포함해 min부터 max까지의 어떤 값이든 나올 수 있습니다. int에서는 max 자체가 제외됩니다. 따라서 주사위를 굴릴 때는 1부터 7까지를 지정합니다.

int roll = Random.Range(1, 7);   // 1, 2, 3, 4, 5 또는 6
Debug.Log("You rolled " + roll);

int 버전에서는 max가 제외되므로 Random.Range(0, names.Length)는 항상 유효한 배열 인덱스가 됩니다. 또한 결과를 float에 저장하더라도 Random.Range(-5, 5)는 -5부터 4까지의 정수만 반환한다는 뜻입니다. 그 사이의 어떤 값이든 얻으려면 Random.Range(-5f, 5f)라고 작성하세요.

3D 공간의 위치와 방향을 구할 때 Unity에는 바로 사용할 수 있는 무작위 벡터가 두 가지 있습니다. Random.insideUnitSphere는 (0, 0, 0)을 중심으로 반지름이 1인 구 내부의 무작위 지점입니다. Random.onUnitSphere는 구 표면 위의 무작위 지점이며, 길이가 1인 무작위 방향을 나타냅니다. transform.position + Random.insideUnitSphere * 2f는 위아래를 포함해 어느 방향으로든 최대 2유닛 떨어진 위치입니다.

challenge icon

챌린지

중급

클릭할 때마다 바닥 위 무작위 위치에서 상자가 떨어집니다.

  1. 클릭 처리용 if 안에서 float x = Random.Range(-4f, 4f);를 만들고, 같은 방식으로 float z도 만드세요.
  2. Instantiate(cratePrefab, new Vector3(x, 5, z), Quaternion.identity);를 호출하세요.

‘플레이’를 누르고 몇 번 클릭해 보세요. 상자가 새로운 위치에 떨어집니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // 무작위 위치에서 상자를 떨어뜨립니다: x와 z는 -4부터 4까지, y = 5
        }
    }
}

Unity 스크립팅 기초의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드