온보딩: 에디터 조작·프로젝트 구조

유니티 온보딩: 에디터 조작과 프로젝트 구조의 이해

목표: 유니티(Unity) 개발의 기초는 ‘코드 작성’이 아니라 ‘환경 이해’에서 시작됩니다. 이 글에서는 유니티 에디터의 핵심 패널, 씬 관리, 프로젝트 구조 설계 등 개발자가 매일 마주하게 되는 작업 공간의 근본적 이해를 다룹니다. 이를 익히면 “어디서 무엇을 바꿔야 하는지”를 명확히 인식할 수 있습니다.

1. 유니티 에디터의 기본 구조

유니티 에디터는 크게 씬(Scene) 중심의 시각적 환경과 프로젝트(Project) 중심의 리소스 관리 영역으로 나뉩니다. 각각의 창(Pane)은 역할이 명확하게 구분되어 있으며, 이를 체계적으로 이해하는 것이 생산성의 출발점입니다.

1.1 핵심 창의 역할

  • Hierarchy — 현재 씬(Scene)에 배치된 모든 게임 오브젝트의 계층 구조를 표시합니다. 논리적 관계를 시각적으로 표현하는 트리 구조입니다.
  • Scene — 개발자가 직접 오브젝트를 배치·이동·편집하는 작업 공간입니다. 시점 이동은 마우스 오른쪽 클릭 + WASD 키로 제어할 수 있습니다.
  • Game — 플레이 모드 시 게임 카메라의 실제 렌더링 결과를 확인합니다.
  • Inspector — 선택된 오브젝트의 구성요소(Component)와 속성을 편집합니다. 스크립트의 Public 변수 또한 여기에서 노출됩니다.
  • Project — 프로젝트의 모든 파일(스크립트, 에셋, 프리팹 등)을 계층적으로 보여줍니다. 실제 파일 시스템과 직접 연결되어 있습니다.
  • ConsoleDebug.Log()를 통해 출력된 메시지, 오류, 경고를 표시합니다.
💡 팁: 각 창은 자유롭게 도킹·분리할 수 있으며, 자주 사용하는 창 레이아웃은 Window → Layouts → Save Layout을 통해 저장할 수 있습니다.

1.2 에디터 내 주요 단축키

  • Q — 선택(Select)
  • W — 이동(Move)
  • E — 회전(Rotate)
  • R — 스케일(Scale)
  • F — 선택한 오브젝트로 뷰 포커스 이동
  • Ctrl/Cmd + D — 복제(Duplicate)
  • Ctrl/Cmd + S — 씬 저장

2. 씬(Scene)과 게임 오브젝트 구조

유니티 프로젝트의 모든 게임 로직은 씬(Scene)이라는 단위로 구성됩니다. 각 씬은 독립적인 환경을 가지며, 게임 오브젝트(GameObject)컴포넌트(Component)의 집합체로 구성됩니다.

2.1 씬의 개념

  • 하나의 씬은 게임의 한 단계(메뉴, 맵, 레벨 등)를 나타냅니다.
  • File → New Scene을 통해 새로운 씬을 생성하고, Scenes/ 폴더에 저장하는 것이 일반적입니다.
  • 씬은 비주얼 구성 + 스크립트 연결 + 물리 속성이 함께 저장된 단위입니다.

2.2 게임 오브젝트와 컴포넌트

  • 모든 오브젝트는 GameObject로 시작합니다.
  • 기능은 Component 단위로 추가됩니다. 예: Transform, Rigidbody, Collider, Script.
  • 각 오브젝트는 Transform 컴포넌트를 반드시 포함합니다.
  • 사용자 정의 스크립트는 Add Component → New Script로 연결합니다.
⚙️ 예제:
public class PlayerController : MonoBehaviour { void Update() { transform.Translate(Vector3.forward * Time.deltaTime * 5f); } }

이 스크립트는 씬에 존재하는 오브젝트(예: Player)에 추가되며, 매 프레임마다 전진 이동을 수행합니다. 즉, 스크립트 = 동작을 정의하는 컴포넌트입니다.

3. 프로젝트 구조 설계

유니티 프로젝트의 파일 구조를 명확히 설계하지 않으면, 중후반부에 에셋 정리 불가빌드 실패 같은 문제를 겪게 됩니다. 초기 단계에서의 구조화는 협업과 유지보수를 동시에 돕습니다.

3.1 추천 폴더 구조

Assets/ ├─ Art/ │ ├─ Characters/ │ ├─ Environment/ │ └─ UI/ ├─ Audio/ ├─ Materials/ ├─ Prefabs/ ├─ Scenes/ ├─ Scripts/ │ ├─ Managers/ │ ├─ Systems/ │ └─ UI/ ├─ Settings/ └─ Resources/ 
  • Art — 3D 모델, 스프라이트, 텍스처 등 시각 자산.
  • Prefabs — 반복적으로 사용하는 오브젝트의 원형.
  • Scripts — 논리 제어 코드.
  • Scenes — 모든 게임 레벨 구성 파일.
  • Resources — 런타임 동적 로드용 에셋 (주의: 남용 금지).

3.2 네이밍 규칙

  • 씬 이름은 접두어로 구분: SCN_Menu, SCN_Level01.
  • 프리팹은 PFB_, 스크립트는 ClassName.cs 형태로 유지.
  • 폴더와 파일명은 항상 영어 소문자/대문자 조합으로 작성.
💡 팁: 프로젝트 루트에는 반드시 README.mdProjectGuide.txt를 두어 구조와 규칙을 명시하세요. 협업자나 향후 자신에게 큰 도움이 됩니다.

4. 에셋 관리와 Addressables 기초

유니티의 에셋 파이프라인은 단순히 파일을 불러오는 수준을 넘어, 빌드 대상과 메모리 효율을 고려하는 시스템입니다.

  • 임포트 설정은 에디터에서 자동 처리되지만, 품질·압축·포맷 옵션을 직접 조정할 수 있습니다.
  • 반복되는 리소스 로드는 Addressables 시스템을 사용해 메모리 사용량을 줄일 수 있습니다.
  • Addressables는 “레이블 단위로 그룹화된 리소스”를 런타임에 Addressables.LoadAssetAsync()로 비동기 로드합니다.
⚙️ 예시 코드:
using UnityEngine; using UnityEngine.AddressableAssets;

public class AssetLoader : MonoBehaviour {
public string assetKey;
void Start() {
Addressables.LoadAssetAsync(assetKey).Completed += handle => {
Instantiate(handle.Result);
};
}
}

위 예제는 Addressables을 통해 외부 리소스를 효율적으로 로드하는 기초 구조를 보여줍니다.

정리: 에디터 숙련이 곧 개발 속도다

유니티 학습에서 에디터 조작과 프로젝트 구조 이해는 단순한 입문 과정을 넘어, 실무 개발 효율을 좌우하는 핵심 역량입니다. 에디터는 곧 “개발 언어의 시각적 확장판”이므로, 이 구조를 익힌 개발자는 스크립트 작성보다 빠르게 문제를 인식하고 수정할 수 있습니다.

즉, 에디터의 흐름을 이해하는 순간부터 진짜 개발이 시작된다는 점을 기억하세요.

다음 학습 추천:

Comments