From 42890552550d2c558b333283308c72b5e579ca66 Mon Sep 17 00:00:00 2001 From: BoyongHwang Date: Thu, 29 Jan 2026 23:34:56 +0900 Subject: [PATCH] =?UTF-8?q?Notion=EC=97=90=EC=84=9C=20GameData=20=EB=B6=88?= =?UTF-8?q?=EB=9F=AC=EC=99=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 부모 페이지 ID 변경 (sync_from_notion) - 몬스터, 웨이브 데이터 파일 csv, josn, meta, cs 파일 추가 --- Assets/Data/ScriptableObjects.meta | 8 +++ .../Data/ScriptableObjects/MonsterMaster.meta | 8 +++ Assets/Data/ScriptableObjects/WaveMaster.meta | 8 +++ .../Scripts/DataClasses/MonsterMasterData.cs | 30 +++++++++++ .../DataClasses/MonsterMasterData.cs.meta | 2 + .../Scripts/DataClasses/WaveMasterData.cs | 26 ++++++++++ .../DataClasses/WaveMasterData.cs.meta | 2 + DataTools/sync_from_notion.py | 2 +- GameData/.MonsterMaster_schema.json | 50 +++++++++++++++++++ GameData/.WaveMaster_schema.json | 38 ++++++++++++++ GameData/MonsterMaster.csv | 6 +++ GameData/WaveMaster.csv | 6 +++ 12 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 Assets/Data/ScriptableObjects.meta create mode 100644 Assets/Data/ScriptableObjects/MonsterMaster.meta create mode 100644 Assets/Data/ScriptableObjects/WaveMaster.meta create mode 100644 Assets/Data/Scripts/DataClasses/MonsterMasterData.cs create mode 100644 Assets/Data/Scripts/DataClasses/MonsterMasterData.cs.meta create mode 100644 Assets/Data/Scripts/DataClasses/WaveMasterData.cs create mode 100644 Assets/Data/Scripts/DataClasses/WaveMasterData.cs.meta create mode 100644 GameData/.MonsterMaster_schema.json create mode 100644 GameData/.WaveMaster_schema.json create mode 100644 GameData/MonsterMaster.csv create mode 100644 GameData/WaveMaster.csv diff --git a/Assets/Data/ScriptableObjects.meta b/Assets/Data/ScriptableObjects.meta new file mode 100644 index 0000000..db7d00b --- /dev/null +++ b/Assets/Data/ScriptableObjects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 09a09218bc5a7c643949d093eefa9e1d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/ScriptableObjects/MonsterMaster.meta b/Assets/Data/ScriptableObjects/MonsterMaster.meta new file mode 100644 index 0000000..0dd4c8d --- /dev/null +++ b/Assets/Data/ScriptableObjects/MonsterMaster.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 25ab0c46cf6af334daf6817ed418e178 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/ScriptableObjects/WaveMaster.meta b/Assets/Data/ScriptableObjects/WaveMaster.meta new file mode 100644 index 0000000..8b9043c --- /dev/null +++ b/Assets/Data/ScriptableObjects/WaveMaster.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 47db706e7f90d914f8b05b88b626b406 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/Scripts/DataClasses/MonsterMasterData.cs b/Assets/Data/Scripts/DataClasses/MonsterMasterData.cs new file mode 100644 index 0000000..52733dd --- /dev/null +++ b/Assets/Data/Scripts/DataClasses/MonsterMasterData.cs @@ -0,0 +1,30 @@ +// 이 파일은 자동 생성되었습니다. 직접 수정하지 마세요! +// 생성 스크립트: DataTools/generate_csharp_classes.py + +using UnityEngine; + +namespace DigAndDefend.Data +{ + [CreateAssetMenu(fileName = "MonsterMasterData", menuName = "DigAndDefend/MonsterMaster Data")] + public class MonsterMasterData : ScriptableObject + { + [Header("기본 정보")] + /// 몬스터 고유 ID + public int monsterId; + /// 메모 + public string memo; + /// 이동속도 + public float moveSpeed; + /// 체력 + public int maxHp; + /// 사정거리 + public int atkRange; + /// 데미지 + public int atkDamage; + /// 공격 주기 + public float atkIntervalSec; + /// 프리팹/리소스 경로 + public string prefabPath; + + } +} \ No newline at end of file diff --git a/Assets/Data/Scripts/DataClasses/MonsterMasterData.cs.meta b/Assets/Data/Scripts/DataClasses/MonsterMasterData.cs.meta new file mode 100644 index 0000000..22a979d --- /dev/null +++ b/Assets/Data/Scripts/DataClasses/MonsterMasterData.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: eb34e2098ca7d654a81d495ad6e6f21b \ No newline at end of file diff --git a/Assets/Data/Scripts/DataClasses/WaveMasterData.cs b/Assets/Data/Scripts/DataClasses/WaveMasterData.cs new file mode 100644 index 0000000..0b84609 --- /dev/null +++ b/Assets/Data/Scripts/DataClasses/WaveMasterData.cs @@ -0,0 +1,26 @@ +// 이 파일은 자동 생성되었습니다. 직접 수정하지 마세요! +// 생성 스크립트: DataTools/generate_csharp_classes.py + +using UnityEngine; + +namespace DigAndDefend.Data +{ + [CreateAssetMenu(fileName = "WaveMasterData", menuName = "DigAndDefend/WaveMaster Data")] + public class WaveMasterData : ScriptableObject + { + [Header("기본 정보")] + /// 웨이브 고유 ID + public int waveId; + /// 사람이 읽는 고정 키 (예: WAVE_001) + public string waveKey; + /// 기획/개발 메모(비출력) + public string memo; + /// 웨이브 주기(초). 기본 90 + public int durationSec; + /// 해당 웨이브에서 소환할 몬스터 ID 목록 + public string monsterIdList; + /// 해당 웨이브에서 소환할 몬스터 ID 별 소환 개수 + public string monsterCountList; + + } +} \ No newline at end of file diff --git a/Assets/Data/Scripts/DataClasses/WaveMasterData.cs.meta b/Assets/Data/Scripts/DataClasses/WaveMasterData.cs.meta new file mode 100644 index 0000000..5bbbaeb --- /dev/null +++ b/Assets/Data/Scripts/DataClasses/WaveMasterData.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b0f6af2548b6a6049b54c1d50e7a6c53 \ No newline at end of file diff --git a/DataTools/sync_from_notion.py b/DataTools/sync_from_notion.py index fbe2e2a..311ef83 100644 --- a/DataTools/sync_from_notion.py +++ b/DataTools/sync_from_notion.py @@ -13,7 +13,7 @@ NOTION_API_KEY = "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" notion = Client(auth=NOTION_API_KEY) if NOTION_API_KEY else None # ⭐ 부모 페이지 ID만 설정 (1회) -SCHEMA_PARENT_PAGE_ID = "2f194d45b1a380948073ca3883f7347e" +SCHEMA_PARENT_PAGE_ID = "2f494d45b1a3818fa9fceb4f9e17d905" SCRIPT_DIR = Path(__file__).parent GAMEDATA_DIR = SCRIPT_DIR.parent / "GameData" diff --git a/GameData/.MonsterMaster_schema.json b/GameData/.MonsterMaster_schema.json new file mode 100644 index 0000000..5d6e1af --- /dev/null +++ b/GameData/.MonsterMaster_schema.json @@ -0,0 +1,50 @@ +[ + { + "name": "monster_id", + "type": "int", + "condition": null, + "description": "몬스터 고유 ID" + }, + { + "name": "memo", + "type": "string", + "condition": null, + "description": "메모" + }, + { + "name": "move_speed", + "type": "float", + "condition": null, + "description": "이동속도" + }, + { + "name": "max_hp", + "type": "int", + "condition": null, + "description": "체력" + }, + { + "name": "atk_range", + "type": "int", + "condition": null, + "description": "사정거리" + }, + { + "name": "atk_damage", + "type": "int", + "condition": null, + "description": "데미지" + }, + { + "name": "atk_interval_sec", + "type": "float", + "condition": null, + "description": "공격 주기" + }, + { + "name": "prefab_path", + "type": "string", + "condition": null, + "description": "프리팹/리소스 경로" + } +] \ No newline at end of file diff --git a/GameData/.WaveMaster_schema.json b/GameData/.WaveMaster_schema.json new file mode 100644 index 0000000..bb3441c --- /dev/null +++ b/GameData/.WaveMaster_schema.json @@ -0,0 +1,38 @@ +[ + { + "name": "wave_id", + "type": "int", + "condition": null, + "description": "웨이브 고유 ID" + }, + { + "name": "wave_key", + "type": "string", + "condition": null, + "description": "사람이 읽는 고정 키 (예: WAVE_001)" + }, + { + "name": "memo", + "type": "string", + "condition": null, + "description": "기획/개발 메모(비출력)" + }, + { + "name": "duration_sec", + "type": "int", + "condition": null, + "description": "웨이브 주기(초). 기본 90" + }, + { + "name": "monster_id_list", + "type": "string", + "condition": null, + "description": "해당 웨이브에서 소환할 몬스터 ID 목록" + }, + { + "name": "monster_count_list", + "type": "string", + "condition": null, + "description": "해당 웨이브에서 소환할 몬스터 ID 별 소환 개수" + } +] \ No newline at end of file diff --git a/GameData/MonsterMaster.csv b/GameData/MonsterMaster.csv new file mode 100644 index 0000000..1c0c604 --- /dev/null +++ b/GameData/MonsterMaster.csv @@ -0,0 +1,6 @@ +monster_id,memo,move_speed,max_hp,atk_range,atk_damage,atk_interval_sec,prefab_path +101,Grunt(기본),2.6,30,1,3,1.2,Assets/Prefabs/EnemyTest +102,Fast(빠름/약함),3.4,18,1,2,1,Assets/Prefabs/MonsterTest +103,Tank(느림/단단),2,70,1,4,1.5,Assets/Prefabs/Core +104,Ranged(원거리/약함),2.4,22,5,2,1.4,Assets/Prefabs/Resource +105,Elite(소수 정예),2.8,120,1,7,1.3,Assets/Prefabs/ResourcePickup diff --git a/GameData/WaveMaster.csv b/GameData/WaveMaster.csv new file mode 100644 index 0000000..36568bf --- /dev/null +++ b/GameData/WaveMaster.csv @@ -0,0 +1,6 @@ +wave_id,wave_key,memo,duration_sec,monster_id_list,monster_count_list +1,WAVE_001,,90,101,10 +2,WAVE_002,,90,102,20 +3,WAVE_003,,90,103,5 +4,WAVE_004,,90,104,3 +5,WAVE_005,,90,105,2