내일배움캠프 - TIL/내일배움캠프 - TIL

내일배움캠프 26일차 - 기획 테이블 활용 & IDE

rudals4469 2025. 5. 23. 20:34

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 → 선택한 오브젝트 그룹화 (새로운 빈 부모 생성 후 포함)