[내일배움캠프 Unity 9기]

05/15 TIL 프로젝트 마무리 및 Unity 실전 팁

kyvv 2025. 5. 15. 20:43

Scriptable Object 와 프리팹의 차이점 : 

ScriptableObject는 "데이터를 위한 클래스",
**Prefab은 "게임에 등장하는 오브젝트의 청사진"**입니다.

🔷 ScriptableObject는 이런 데 유용해요

  • 게임 내 공통 데이터 저장 (예: 무기 정보, 속성, 스킬 계수)
  • 씬 간 데이터 공유
  • 런타임에서 여러 오브젝트가 같은 데이터 참조
  • 메모리 절약 / 참조 관리 효율
 

ScriptableObject를 사용하는 게 적합한 상황

상황설명예시
🔁 여러 오브젝트가 같은 데이터를 공유할 때 데이터 일관성을 유지하면서 메모리 절약 모든 슬라임이 같은 스탯(HP, 속도 등)을 사용
⚙️ 자주 바뀌는 설정을 에디터에서 편하게 수정하고 싶을 때 프리팹 열지 않고도 직접 데이터 수정 가능 전체 게임 설정, 난이도 수치, 퀘스트 조건
📦 데이터를 코드에서 독립시켜 재사용하고 싶을 때 데이터와 로직을 분리 무기 정보, NPC 대사, 아이템 효과
🧪 테스트나 밸런싱 시, 값만 바꿔서 결과를 실험하고 싶을 때 코드 수정 없이 수치만 조정 공격력 10 → 15로 바꿔보기 등
 

 


🔶 Prefab은 이런 데 유용해요

  • 게임에 반복적으로 등장하는 오브젝트를 미리 만들어놓기
  • Instantiate로 씬에 동적으로 배치
  • 기본적으로 MonoBehaviour를 포함한 GameObject

Prefab만으로 충분한 상황

상황설명예시
🧱 게임에 등장할 실제 오브젝트를 생성할 때 눈에 보이고 동작하는 오브젝트 캐릭터, 몬스터, 총알, 트랩, UI 버튼
🧩 상태가 개별적이고 서로 다른 인스턴스가 필요한 경우 각각이 독립적인 동작을 가질 때 보스 슬라임 A, B가 각각 다른 체력
🎮 런타임에서 Instantiate로 배치하려는 경우 게임 씬에 배치해서 사용할 목적 보상 상자, 이펙트, 스킬 이펙트 오브젝트
💥 시각적, 물리적 상호작용이 필요한 경우 Rigidbody, Collider 등 사용 시 떨어지는 바위, 발사체, 캐릭터 본체 등

 

--- Unity 실전 팁 ---


Shift + F 를 누르면 카메라를 현재 내가 보는 뷰로 정렬할 수 있음

 

간단한 데이터 수정으로 인한 리로르를 피하려면 프로젝트 설정에서 Enter Play Mode 옵션을 바꿔줘

 

플레이 모드에서 수정한 내용을 원본에 적용할 수 없으니 플레이 모드를 구분하기 쉬운 색으로 변경하려면 preference 세팅에서 PlayColor Tint를 변경해라 

 

Lov Viewer : 디버깅 로그를 확인할 수 있는 유니티 무료 에셋

 

에디터가 멈춰서 직전에 작업한 내용들을 백업한 파일이 프로젝트 폴더 내 temp 폴더 안에서 backup이 확장자로 붙은 파일을 찾아 unity로 변경 후 에셋 폴더에 추가