1. 고정형 데이터 vs 변동성 데이터
고정형 데이터 (Static Data)
- 게임의 룰, 밸런스, 설정값처럼 변하지 않는 정보
- 외부 파일 또는 ScriptableObject 등으로 관리
- 예시:
- 무기 종류 및 스탯 테이블
- 캐릭터 레벨별 스탯
- 몬스터 출현 정보
- 스테이지 구성 데이터
변동성 데이터 (Dynamic/Runtime Data)
- 플레이 중 변경되는 정보
- 저장, 불러오기, 동기화의 대상
- 예시:
- 플레이어의 현재 경험치, 체력, 소지 아이템
- 퀘스트 진행 상태
- 클리어한 스테이지 목록
- 설정값(볼륨, 언어 등)
2. 고정형 데이터 관리 방법
- ScriptableObject 사용
[CreateAssetMenu]
public class WeaponData : ScriptableObject
{
public string id;
public int damage;
public float cooldown;
}
- 외부 JSON을 파싱하여 Dictionary나 리스트로 로드
- 주로 Resources 또는 Addressable로 관리
3. 변동성 데이터 구조 예시
[System.Serializable]
public class PlayerSaveData
{
public int level;
public float currentHP;
public List<string> ownedItemIds;
public string lastStage;
}
- Unity에서 직렬화 가능한 구조체 또는 클래스 사용
- List<T>, Dictionary<string, T> 등도 사용 가능 (단, Dictionary는 JSON 저장 시 주의 필요)
4. JSON 직렬화 방법
PlayerSaveData data = new PlayerSaveData();
string json = JsonUtility.ToJson(data);
저장
string path = Application.persistentDataPath + "/save.json";
File.WriteAllText(path, json);
불러오기
if (File.Exists(path))
{
string loaded = File.ReadAllText(path);
data = JsonUtility.FromJson<PlayerSaveData>(loaded);
}
- Application.persistentDataPath는 플랫폼에 따라 자동으로 적절한 경로 사용
- Android, iOS, Windows 모두 대응됨
기획 테이블 활용
기획자 협력의 중요성
💡
- 기획자와의 협력은 게임 개발의 핵심.
- 기획자가 데이터를 직접 수정하고 관리할 수 있는 환경 구축 필요.
- 프로그래머가 모든 것을 전담하지 않도록 하여 기획자가 변경된 사항을 게임에 쉽게 반영.
- 단순하고 명확한 데이터 테이블 유지로 기획자가 쉽게 이해하고 수정할 수 있도록 구성.
기획 데이터 테이블 활용
💡
- 기획 데이터 활용은 게임 개발에서 필수적.
- 기획자는 엑셀을 통해 데이터를 관리하고, 프로그래머는 이를 게임에 활용하기 위해 다양한 형식으로 변환.
- CSV, JSON, ScriptableObject(SO), 서버 데이터 활용이 일반적.
기획 데이터 활용 방식
- 엑셀 데이터
- 기획자가 데이터 관리에 익숙한 엑셀을 사용.
- 엑셀 데이터를 CSV 형식으로 저장하여 Unity에서 사용 가능.
- 간단하고 효율적이며, 기획자가 데이터를 쉽게 조정할 수 있음.
- JSON 파일
- 엑셀 데이터를 JSON 형식으로 변환하여 구조화된 방식으로 데이터 관리.
- 계층적 구조를 가지며, 복잡한 데이터나 배열 구조를 손쉽게 처리 가능.
- ScriptableObject(SO)
- Unity 내에서 직렬화되어 관리되므로 데이터 관리가 편리함.
- 기획자가 Unity 에디터를 통해 데이터를 직관적으로 수정 가능.
- 다양한 게임 데이터에 직접적으로 접근하고 관리하는 데 유용.
- 서버 데이터 활용
- 실시간 데이터 변경이 필요한 경우 서버에서 데이터 불러오기 유용.
- 서버를 통해 원격으로 데이터를 수정하고, 게임에 실시간 반영 가능.
- 라이브 서비스 게임에서 특히 효과적.
참조링크 https://github.com/npckero/ExcelToJsonWizard
단축키
자주 사용하는 단축키
1. 코드 작성 및 편집 (Visual Studio / Rider)
- Ctrl + , → 빠른 검색 (파일, 클래스, 메서드 등)
- Ctrl + ; → 솔루션 탐색기에서 검색
- Ctrl + 방향키 → 단어 단위로 커서 이동
- Alt + 방향키 → 코드 블록 이동 (한 줄 또는 여러 줄 선택 시 이동)
- Ctrl + Spacebar → 코드 자동완성 (IntelliSense)
- Ctrl + Tab → 최근 열린 파일 간 전환
- Ctrl + R, R 또는 F2 → 변수, 함수 이름 일괄 변경 (리팩토링)
- Ctrl + K, C → 주석 처리 (//)
- Ctrl + K, U → 주석 해제
- Ctrl + K, F → 코드 자동 정렬
- 마우스 뒤로가기 키 → 이전 페이지 또는 이전 작업으로 이동
- Ctrl + - → 이전 커서 위치로 이동
- Ctrl + Shift + - → 다음 커서 위치로 이동
- Ctrl + G → 특정 줄 번호로 이동
- Ctrl + 클릭 → 선언부로 이동 (함수, 변수 등)
- F12 → 선언부로 이동 (Go to Definition)
- Shift + F12 → 모든 참조 찾기 (Find All References)
2. Unity 에디터 내 기본 단축키
- Ctrl + P → 플레이 모드 실행 / 중지
- Ctrl + Shift + P → 플레이 모드에서 일시 정지
- Ctrl + Z / Ctrl + Y → 실행 취소 / 다시 실행
- Ctrl + D → 선택한 오브젝트 또는 애셋 복제
- Ctrl + Shift + N → 새로운 빈 게임오브젝트 생성
- F → 선택한 오브젝트로 포커스 이동
- Ctrl + Shift + F → 현재 뷰 위치에 오브젝트 배치
3. 계층 구조 (Hierarchy) 관련
- Ctrl + Shift + G → 선택한 오브젝트 그룹화 (새로운 빈 부모 생성 후 포함)
'내일배움캠프 - TIL > 내일배움캠프 - TIL' 카테고리의 다른 글
| 내일배움캠프 28일차 - 프로젝트 초기 설정(매니저) (0) | 2025.05.27 |
|---|---|
| 내일배움캠프 27일차 - 백준, 프로그래머스 자동 깃허브 커밋, (0) | 2025.05.26 |
| 내일배움캠프 25일차 - 데이터 드리븐 (0) | 2025.05.22 |
| 내일배움캠프 24일차 - 객체 지향 프로그래밍 OOP (0) | 2025.05.21 |
| 내일배움캠프 23일차 - Unity 3D 상에서 Plane 생성 시 위로 이동하면 안보이는 이슈 (0) | 2025.05.20 |