Notion에서 GameData 불러와 추가

- 부모 페이지 ID 변경 (sync_from_notion)
- 몬스터, 웨이브 데이터 파일 csv, josn, meta, cs 파일 추가
This commit is contained in:
BoyongHwang
2026-01-29 23:34:56 +09:00
parent 6638193524
commit 4289055255
12 changed files with 185 additions and 1 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 09a09218bc5a7c643949d093eefa9e1d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 25ab0c46cf6af334daf6817ed418e178
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 47db706e7f90d914f8b05b88b626b406
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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("기본 정보")]
/// <summary>몬스터 고유 ID</summary>
public int monsterId;
/// <summary>메모</summary>
public string memo;
/// <summary>이동속도</summary>
public float moveSpeed;
/// <summary>체력</summary>
public int maxHp;
/// <summary>사정거리</summary>
public int atkRange;
/// <summary>데미지</summary>
public int atkDamage;
/// <summary>공격 주기</summary>
public float atkIntervalSec;
/// <summary>프리팹/리소스 경로</summary>
public string prefabPath;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: eb34e2098ca7d654a81d495ad6e6f21b

View File

@@ -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("기본 정보")]
/// <summary>웨이브 고유 ID</summary>
public int waveId;
/// <summary>사람이 읽는 고정 키 (예: WAVE_001)</summary>
public string waveKey;
/// <summary>기획/개발 메모(비출력)</summary>
public string memo;
/// <summary>웨이브 주기(초). 기본 90</summary>
public int durationSec;
/// <summary>해당 웨이브에서 소환할 몬스터 ID 목록</summary>
public string monsterIdList;
/// <summary>해당 웨이브에서 소환할 몬스터 ID 별 소환 개수</summary>
public string monsterCountList;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: b0f6af2548b6a6049b54c1d50e7a6c53

View File

@@ -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"

View File

@@ -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": "프리팹/리소스 경로"
}
]

View File

@@ -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 별 소환 개수"
}
]

View File

@@ -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
1 monster_id memo move_speed max_hp atk_range atk_damage atk_interval_sec prefab_path
2 101 Grunt(기본) 2.6 30 1 3 1.2 Assets/Prefabs/EnemyTest
3 102 Fast(빠름/약함) 3.4 18 1 2 1 Assets/Prefabs/MonsterTest
4 103 Tank(느림/단단) 2 70 1 4 1.5 Assets/Prefabs/Core
5 104 Ranged(원거리/약함) 2.4 22 5 2 1.4 Assets/Prefabs/Resource
6 105 Elite(소수 정예) 2.8 120 1 7 1.3 Assets/Prefabs/ResourcePickup

6
GameData/WaveMaster.csv Normal file
View File

@@ -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
1 wave_id wave_key memo duration_sec monster_id_list monster_count_list
2 1 WAVE_001 90 101 10
3 2 WAVE_002 90 102 20
4 3 WAVE_003 90 103 5
5 4 WAVE_004 90 104 3
6 5 WAVE_005 90 105 2