diff --git a/Assets/Data/ScriptableObjects/Tower.meta b/Assets/Data/ScriptableObjects/Tower.meta new file mode 100644 index 0000000..a7b04c2 --- /dev/null +++ b/Assets/Data/ScriptableObjects/Tower.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2164a3a8d18dfc44caedbd4ca5bd9eb6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/ScriptableObjects/Tower/Tower001.asset b/Assets/Data/ScriptableObjects/Tower/Tower001.asset new file mode 100644 index 0000000..9a57d8f --- /dev/null +++ b/Assets/Data/ScriptableObjects/Tower/Tower001.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c40fef5ebc37b743a3f225c1ca57c32, type: 3} + m_Name: Tower001 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.TowerData + id: 1 + memo: "\uD0C0\uC6CC" + mana: 25 + manpower: 10 + sizeX: 3 + sizeY: 3 + maxHp: 50 + atkRange: 10 + atkDamage: 5 + atkIntervalSec: 2 + prefabPath: Assets/Prefabs/TowerArrow diff --git a/Assets/Data/ScriptableObjects/Tower/Tower001.asset.meta b/Assets/Data/ScriptableObjects/Tower/Tower001.asset.meta new file mode 100644 index 0000000..27b4814 --- /dev/null +++ b/Assets/Data/ScriptableObjects/Tower/Tower001.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d75326370af2a2840958aae74db56dee +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/ScriptableObjects/Tower/Tower002.asset b/Assets/Data/ScriptableObjects/Tower/Tower002.asset new file mode 100644 index 0000000..43a884b --- /dev/null +++ b/Assets/Data/ScriptableObjects/Tower/Tower002.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c40fef5ebc37b743a3f225c1ca57c32, type: 3} + m_Name: Tower002 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.TowerData + id: 2 + memo: "\uBCBD" + mana: 5 + manpower: 5 + sizeX: 1 + sizeY: 1 + maxHp: 30 + atkRange: 0 + atkDamage: 0 + atkIntervalSec: 0 + prefabPath: Assets/Prefabs/Wall diff --git a/Assets/Data/ScriptableObjects/Tower/Tower002.asset.meta b/Assets/Data/ScriptableObjects/Tower/Tower002.asset.meta new file mode 100644 index 0000000..66d4fdb --- /dev/null +++ b/Assets/Data/ScriptableObjects/Tower/Tower002.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df145fdd58f30464eb4eb02cfbfb280d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/Scripts/DataClasses/TowerData.cs b/Assets/Data/Scripts/DataClasses/TowerData.cs new file mode 100644 index 0000000..59b9751 --- /dev/null +++ b/Assets/Data/Scripts/DataClasses/TowerData.cs @@ -0,0 +1,37 @@ +// 이 파일은 자동 생성되었습니다. 직접 수정하지 마세요! +// 생성 스크립트: DataTools/generate_csharp_classes.py + +using UnityEngine; +using System.Collections.Generic; // 리스트 지원을 위해 추가 + +namespace Northbound.Data +{ + [CreateAssetMenu(fileName = "TowerData", menuName = "Northbound/Tower Data")] + public class TowerData : ScriptableObject + { + [Header("기본 정보")] + /// 고유 ID + public int id; + /// 기획 메모 + public string memo; + /// 건설 비용 (mana=20) (mana=50; iron=10) + public int mana; + /// 건설 노동량 + public float manpower; + /// X 그리드 차지 공간 + public int sizeX; + /// Y 그리드 차지 공간 + public int sizeY; + /// 체력 + 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/TowerData.cs.meta b/Assets/Data/Scripts/DataClasses/TowerData.cs.meta new file mode 100644 index 0000000..1bc111b --- /dev/null +++ b/Assets/Data/Scripts/DataClasses/TowerData.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8c40fef5ebc37b743a3f225c1ca57c32 \ No newline at end of file diff --git a/GameData/.Tower_schema.json b/GameData/.Tower_schema.json new file mode 100644 index 0000000..bd677e4 --- /dev/null +++ b/GameData/.Tower_schema.json @@ -0,0 +1,68 @@ +[ + { + "name": "id", + "type": "int", + "condition": null, + "description": "고유 ID" + }, + { + "name": "memo", + "type": "string", + "condition": null, + "description": "기획 메모" + }, + { + "name": "mana", + "type": "int", + "condition": null, + "description": "건설 비용\\n(mana=20)\\n(mana=50; iron=10)" + }, + { + "name": "manpower", + "type": "float", + "condition": null, + "description": "건설 노동량" + }, + { + "name": "size_x", + "type": "int", + "condition": null, + "description": "X 그리드 차지 공간" + }, + { + "name": "size_y", + "type": "int", + "condition": null, + "description": "Y 그리드 차지 공간" + }, + { + "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/Tower.csv b/GameData/Tower.csv new file mode 100644 index 0000000..ffbde1e --- /dev/null +++ b/GameData/Tower.csv @@ -0,0 +1,3 @@ +id,memo,mana,manpower,size_x,size_y,max_hp,atk_range,atk_damage,atk_interval_sec,prefab_path +1,타워,25,10,3,3,50,10,5,2,Assets/Prefabs/TowerArrow +2,벽,5,5,1,1,30,0,0,0,Assets/Prefabs/Wall