[Tip] Unity 인스펙터에서 표현식으로 오브젝트를 간편하게 정렬하는 방법

2025. 10. 26. 00:51·Unity

Unity 인스펙터에서 표현식으로 오브젝트를 간편하게 정렬하는 방법

유니티(Unity)로 씬(Scene)을 구성할 때, 여러 개의 게임 오브젝트를 규칙적이거나 무작위로 배치해야 하는 작업은 빈번히 발생하는 작업중에 하나이다. 수십 개의 오브젝트를 일일이 인스펙터(Inspector)에서 위치 값을 수정하거나, 매번 배치를 위한 임시 코드를 작성하는 것은 시간 낭비이자 번거로운 일이다.

혹시 유니티 에디터의 트랜스폼(Transform) 인스펙터 입력 필드에 마치 엑셀 함수를 쓰듯 간단한 표현식을 입력하는 것만으로, 선택된 모든 오브젝트의 위치를 한 번에 정렬할 수 있다는 사실은 유니티를 오래 사용한 사용자라도 몰랐던 기능중에 하나일 것이다.

이 글에서는 유니티 에디터에  표현식 기능을 활용하여 오브젝트를 일렬, 랜덤, 원형 등 원하는 대로 손쉽게 정렬하는 방법을 소개한다. 이 기능을 마스터하면 씬 구성 시간을 빠르게 단축할 수 있다.

인스펙터의 숨겨진 능력: 표현식

유니티 인스펙터의 트랜스폼 컴포넌트에 있는 Position, Rotation, Scale의 각 입력 필드는 단순한 숫자 입력 필드가 아니다. 이 필드들은 간단한 수학 계산이나 특정 함수를 평가(Evaluate)하여 그 결과값을 속성에 할당하는 능력을 지니고 있다.

이는 개발자가 추가적인 에디터 툴이나 스크립팅 없이, 트랜스폼 컴포넌트의 속성에 직접 값을 대입하거나, 선택된 모든 오브젝트를 대상으로 복잡한 계산을 수행할 수 있게 해준다.

핵심 문법: 내장 함수와 수학 연산

이 표현식 평가 기능은 기본적으로 산술 연산자(`+, -, *, /, %`), 괄호, 삼각 함수 (`cos(a), sin(a), tan(a)`), 그리고 상수 `pi` 등을 지원한다.

하지만 오브젝트 정렬을 위해 가장 중요하게 사용되는 것은 바로 다수의 오브젝트에 값을 분산 적용하는 두 가지 특수 함수이다.

함수 설명 예시
`R(min, max)` 선택된 각 오브젝트에 `min`과 `max` 사이의 무작위 값(Random)을 할당한다. R(-5, 5)
`L(start, end)` 선택된 오브젝트를 계층 구조 순서대로 `start`부터 `end`까지 선형 보간(Linear Interpolation)하여 균등하게 값을 분배한다. L(0, 10)

 


 

다양한 정렬 표현식 레시피

오브젝트 여러 개를 선택하고 트랜스폼 컴포넌트의 원하는 필드에 아래 표현식을 입력한 후 Enter 키를 누르면 즉시 정렬이 적용된다.

`주의` : 문자열 대소문자를 구분하여 표현식을 작성해야된다. 

1. 일렬 정렬 (Linear Array)

오브젝트를 한 축을 따라 일정한 간격으로 늘어놓는 가장 기본적인 배치다. L(start, end) 함수를 사용하면 된다. 10개의 오브젝트를 X축으로 -5부터 5까지 일정간격으로 정렬한다고 해보자.

  • X축: `L(-5, 5)`
  • Y축: 0
  • Z축: 0

결과: 선택된 오브젝트는 X=-5부터 X=5 사이에 균등하게 배치된다. 예를 들어, 첫 오브젝트는 -5에, 마지막 오브젝트는 5에 위치하게 된다.

Unity 인스펙터에서 X축으로 L(-5, 5) 표현식을 사용하여 일렬 정렬하는 방법
X축으로 L(-5, 5) 표현식을 사용하여 일렬 정렬하는 방법

2. 랜덤 정렬 (Random Placement)

오브젝트를 특정 범위 내에서 무작위로 흩뿌릴 때 `R(min, max)` 함수를 사용한다. X축과 Y축에서 모두 -5부터 5 사이의 무작위 위치를 얻어보자.

  • X축: `R(-5, 5)`
  • Y축: `R(-5, 5)`
  • Z축: 0

결과: 모든 오브젝트가 X와 Y축에서 -5에서 5 사이의 임의의 위치에 배치되어 무작위 배치를 코딩 없이 쉽게 구현한다.

Unity 인스펙터에서 X,Y 축으로 R(-5, 5) 표현식을 사용하여 무작위로 정렬하는 방법
X,Y 축으로 R(-5, 5) 표현식을 사용하여 무작위로 정렬하는 방법

3. 원형 정렬 (Circular Array)

오브젝트를 원형으로 배치할 때는 L() 함수로 각도를 선형 보간하고, 삼각 함수를 활용한다. 원을 0부터 360 (또는 2π 라디안)로 나누어 반지름 5인 원형 대형을 만들어보자. (유니티 표현식에서 삼각 함수의 인수는 라디안이다).

  • X축: `cos(L(0, 2 * pi)) * 5`
  • Y축: `sin(L(0, 2 * pi)) * 5`
  • Z축: 0

설명:

  1. `L(0, 2 * pi)`: 선택된 오브젝트에 0부터 2π(약 6.28, 한 바퀴)까지의 라디안 각도를 순서대로 할당한다.
  2. cos(...) * 5 / sin(...) * 5: 이 각도와 반지름(5)을 사용하여 원 위의 X, Z 좌표를 계산한다.

결과: 오브젝트들이 중심을 기준으로 반지름 5인 원형 대형으로 깔끔하게 배치된다.

유니티 인스펙터에서 삼각함수와 L() 표현식을 사용하여 원형으로 정렬하는 방법
삼각함수와 L() 표현식을 사용하여 원형으로 정렬하는 방법

 


 

마무리

유니티 인스펙터의 표현식 평가 기능은 단순하지만 강력하여, 씬 구성과 레벨 디자인 작업에서 반복되는 배치를 위한 불필요한 코딩을 줄여준다. 이 기능은 또한 모든 작업이 실행 취소(Undo)가 가능하다는 장점도 있어, 실수 걱정 없이 다양한 값을 시도해볼 수 있다.

이제부터는 오브젝트를 배치할 때 일일이 값을 입력하는 대신, L(0, 10)이나 R(-3, 3) 같은 간단한 표현식을 활용하여 개발 생산성을 한 단계 높여보길 바란다.

'Unity' 카테고리의 다른 글

[Tip] Unity 버텍스 스냅핑(Vertex Snapping)을 활용한 오브젝트 정렬  (1) 2026.01.07
콤마(,) 때문에 게임이 멈춘다고? Unity 문자열 파싱 오류와 InvariantCulture의 중요성  (0) 2025.11.23
[Tip] 유니티(Unity) 개발 속도 획기적으로 줄이는 방법 : Enter Play Mode  (0) 2025.08.28
Unity C# 스크립트에서 summary 주석 활용하여 코드 가독성 높이는 방법  (0) 2025.08.25
[Tip] Unity 에서 Scene View 카메라를 Game View에 적용시키는 방법  (2) 2025.07.24
'Unity' 카테고리의 다른 글
  • [Tip] Unity 버텍스 스냅핑(Vertex Snapping)을 활용한 오브젝트 정렬
  • 콤마(,) 때문에 게임이 멈춘다고? Unity 문자열 파싱 오류와 InvariantCulture의 중요성
  • [Tip] 유니티(Unity) 개발 속도 획기적으로 줄이는 방법 : Enter Play Mode
  • Unity C# 스크립트에서 summary 주석 활용하여 코드 가독성 높이는 방법
deploylife
deploylife
빠르게 변화하는 기술 트렌드 속에서 새로운 기술을 학습하고 실제 개발에 적용하며 얻은 인사이트를 기록하고 있습니다.
  • deploylife
    인생은 배포중
    deploylife
  • 전체
    오늘
    어제
    • 분류 전체보기 (32)
      • Dev (5)
      • AI (6)
      • Unity (7)
      • Python (0)
      • Mac (5)
      • Life (4)
      • Blog (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    vs code
    Skin
    Prompt File
    프롬프트구조
    MCP
    Mac
    티스토리
    C#
    유니티
    Highlight.js
    JSONSchema
    float.Parse
    생산성향상
    code block
    Unity
    json
    vscode
    AI
    CultureInfo.InvariantCulture
    문자열파싱 오류
  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
deploylife
[Tip] Unity 인스펙터에서 표현식으로 오브젝트를 간편하게 정렬하는 방법
상단으로

티스토리툴바