데이터파이프라인 타워 부분 개선

This commit is contained in:
2026-02-01 11:31:50 +09:00
parent 9d870625ce
commit fe046611b0
43 changed files with 2181 additions and 45 deletions

View File

@@ -0,0 +1,52 @@
%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: Tower1
m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.TowerData
buildingName: "\uD0C0\uC6CC"
prefab: {fileID: 8512676738329978770, guid: 3f7838db2c2fc424d9bd9a0d243b43be, type: 3}
icon: {fileID: 0}
width: 3
length: 3
height: 4
placementOffset: {x: 0, y: 0, z: 0}
allowRotation: 1
requiredWorkAmount: 10
workPerInteraction: 10
interactionCooldown: 1
constructionAnimationTrigger: Build
constructionEquipment:
socketName: RightHand
equipmentPrefab: {fileID: 0}
attachOnStart: 1
detachOnEnd: 1
keepEquipped: 0
attachDelay: 0
detachDelay: 0
maxHealth: 50
isIndestructible: 0
autoRegenerate: 0
regenPerSecond: 1
providesVision: 1
visionRange: 10
id: 1
memo: "\uD0C0\uC6CC"
mana: 25
manpower: 10
sizeX: 3
sizeY: 3
sizeZ: 3
maxHp: 50
atkRange: 10
atkDamage: 5
atkIntervalSec: 2
modelPath: Assets/Models/building_tower_B_blue.fbx

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3e2e145df85a3ee4eb615f87efba4554
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,52 @@
%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: Tower2
m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.TowerData
buildingName: "\uBCBD"
prefab: {fileID: 3671057791414486316, guid: ae9a9b515e1792a45887f0d967b943d6, type: 3}
icon: {fileID: 0}
width: 2
length: 1
height: 4
placementOffset: {x: 0, y: 0, z: 0}
allowRotation: 1
requiredWorkAmount: 5
workPerInteraction: 10
interactionCooldown: 1
constructionAnimationTrigger: Build
constructionEquipment:
socketName: RightHand
equipmentPrefab: {fileID: 0}
attachOnStart: 1
detachOnEnd: 1
keepEquipped: 0
attachDelay: 0
detachDelay: 0
maxHealth: 30
isIndestructible: 0
autoRegenerate: 0
regenPerSecond: 1
providesVision: 1
visionRange: 0
id: 2
memo: "\uBCBD"
mana: 5
manpower: 5
sizeX: 2
sizeY: 2
sizeZ: 1
maxHp: 30
atkRange: 0
atkDamage: 0
atkIntervalSec: 0
modelPath: Assets/Models/wall_straight.fbx

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 03a521eb1160745439ba2d0efeb12f3c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -3,11 +3,12 @@
using UnityEngine;
using System.Collections.Generic; // 리스트 지원을 위해 추가
using Northbound;
namespace Northbound.Data
{
[CreateAssetMenu(fileName = "TowerData", menuName = "Northbound/Tower Data")]
public class TowerData : ScriptableObject
public class TowerData : BuildingData
{
[Header("기본 정보")]
/// <summary>고유 ID</summary>
@@ -22,6 +23,8 @@ namespace Northbound.Data
public int sizeX;
/// <summary>Y 그리드 차지 공간</summary>
public int sizeY;
/// <summary>Z 차지 공간</summary>
public int sizeZ;
/// <summary>체력</summary>
public int maxHp;
/// <summary>사정거리</summary>
@@ -30,8 +33,40 @@ namespace Northbound.Data
public int atkDamage;
/// <summary>공격 주기</summary>
public float atkIntervalSec;
/// <summary>프리팹/리소스 경로</summary>
public string prefabPath;
/// <summary>모델 경로</summary>
public string modelPath;
private bool fieldsSynced = false;
private void Awake()
{
SyncFields();
}
private void SyncFields()
{
if (fieldsSynced) return;
fieldsSynced = true;
// Map TowerData fields to BuildingData fields
if (string.IsNullOrEmpty(base.buildingName))
{
base.buildingName = memo;
}
base.width = sizeX;
base.length = sizeY;
base.height = sizeZ;
base.maxHealth = maxHp;
base.visionRange = atkRange;
base.requiredWorkAmount = manpower;
base.workPerInteraction = 10f;
base.interactionCooldown =1f;
base.providesVision = true;
}
public void EnsureSynced()
{
SyncFields();
}
}
}

View File

@@ -0,0 +1,146 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7169488976654481418
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4800397361066136527}
- component: {fileID: 4995981673923607444}
- component: {fileID: -5559005308629590716}
- component: {fileID: 8546144977850478548}
- component: {fileID: -4086363217010332088}
- component: {fileID: 4822792797652874450}
m_Layer: 0
m_Name: TowerTemplate
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4800397361066136527
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7169488976654481418}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &4995981673923607444
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7169488976654481418}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 4259369348
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
SceneMigrationSynchronization: 0
SpawnWithObservers: 1
DontDestroyWithOwner: 0
AutoObjectParentSync: 1
SyncOwnerTransformWhenParented: 1
AllowOwnerToParent: 0
--- !u!65 &-5559005308629590716
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7169488976654481418}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 2, z: 1}
m_Center: {x: 0, y: 1, z: 0}
--- !u!208 &8546144977850478548
NavMeshObstacle:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7169488976654481418}
m_Enabled: 1
serializedVersion: 3
m_Shape: 1
m_Extents: {x: 0.5, y: 1, z: 0.5}
m_MoveThreshold: 0.1
m_Carve: 0
m_CarveOnlyStationary: 1
m_Center: {x: 0, y: 1, z: 0}
m_TimeToStationary: 0.5
--- !u!114 &-4086363217010332088
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7169488976654481418}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ceedb9b012d848478813136b65738ae, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.Building
ShowTopMostFoldoutHeaderGroup: 1
buildingData: {fileID: 0}
gridPosition: {x: 0, y: 0, z: 0}
rotation: 0
initialTeam: 1
initialOwnerId: 0
useInitialOwner: 0
showHealthBar: 1
healthBarPrefab: {fileID: 0}
destroyEffectPrefab: {fileID: 0}
damageEffectPrefab: {fileID: 0}
effectSpawnPoint: {fileID: 0}
showGridBounds: 1
gridBoundsColor: {r: 0, g: 1, b: 1, a: 1}
--- !u!114 &4822792797652874450
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7169488976654481418}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0
exploredMaterial: {fileID: 0}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5cb8ca5552f975e4c88d418d11d28dbc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: