Compare commits

...

9 Commits

Author SHA1 Message Date
7fc457a384 적 공격 애니메이션 타이밍 조정 및 무기 장착
기타 누락되었던 프리팹 수정 사항 모두 반영
2026-02-27 19:07:27 +09:00
8093cca251 전장의 안개가 비활성화 되어 있을 때 적이 보이지 않는 문제 수정 2026-02-27 14:34:29 +09:00
c34b9df4f7 팀 체력 UI 2026-02-27 14:19:07 +09:00
BoyongHwang
3aa43bfd20 Merge branch 'main' of http://59.18.227.134:30008/dal4segno/Northbound 2026-02-26 03:18:35 +09:00
BoyongHwang
5284ffc153 팀 정보 HUD 추가
- GameMain > UI > Canvas > TeamCardsRoot > Slot_1 ~ 4
- TeamCard_Large, Small prefab 추가
- https://www.notion.so/HUD-31294d45b1a38099bdcbc63cf9e5279e?source=copy_link
2026-02-26 03:18:28 +09:00
20167a8a52 입력 못받는 버그 추가 수정 및 입력 로직 강제 복구 로직 추가 2026-02-26 01:37:25 +09:00
9951aa98b2 입력 시스템 개선
각자의 입력 처리 로직을 갖지 않고 NetworkPlayerController로부터 받아서 쓰도록 함
2026-02-26 01:20:23 +09:00
600f35ae8f 기본 배치 건물이 시야를 제공하도록 변경 2026-02-26 00:37:38 +09:00
a4eae438de 클라이언트에서 캠프 처치 없이도 ResourcePickup이 보이는 문제 수정 2026-02-25 23:52:13 +09:00
56 changed files with 4482 additions and 3789 deletions

View File

@@ -82,6 +82,7 @@
<Compile Include="Assets\Scripts\Resource.cs" />
<Compile Include="Assets\Data\Scripts\DataClasses\UpgradeData.cs" />
<Compile Include="Assets\Scripts\UpgradeDatabase.cs" />
<Compile Include="Assets\Scripts\UI\TeamHealthUI.cs" />
<Compile Include="Assets\Scripts\AutoTargetSystem.cs" />
<Compile Include="Assets\Scripts\CreepDataComponent.cs" />
<Compile Include="Assets\Scripts\BuildingSlotButton.cs" />

View File

@@ -22,5 +22,5 @@ MonoBehaviour:
atkIntervalSec: 2
cost: 2
weight: 1
modelPath: Assets/Models/PlantWarrior.fbx
modelPath: Assets/Models/PlantWarrior_With_Spear.fbx
animationControllerPath: Assets/Animations/MonsterAnimationController.controller

View File

@@ -22,7 +22,7 @@ MonoBehaviour:
atkIntervalSec: 1.2
cost: 3
weight: 1
modelPath: Assets/Models/Skeleton_Minion.fbx
modelPath: Assets/Models/Skeleton_Minion_With_Sword.fbx
animationControllerPath: Assets/Animations/MonsterAnimationController.controller
waveMin: 1
waveMax: 10

View File

@@ -38,7 +38,7 @@ namespace Northbound.Data
public int length => sizeZ; // Z축 (깊이)
public float height => sizeY; // Y축 (높이)
public int maxHealth => maxHp;
public float visionRange => atkRange;
public float visionRange => sight;
public float requiredWorkAmount => manpower;
public Vector3 GetSize(int rotation)

View File

@@ -73,9 +73,9 @@ Material:
- _OutlineWidth: 0
- _PerspectiveFilter: 0.875
- _Reflectivity: 10
- _ScaleRatioA: 0.9814815
- _ScaleRatioB: 0.7974537
- _ScaleRatioC: 0.7974537
- _ScaleRatioA: 0.75
- _ScaleRatioB: 0.609375
- _ScaleRatioC: 0.609375
- _ScaleX: 1
- _ScaleY: 1
- _ShaderFlags: 0

View File

@@ -0,0 +1,129 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &2678598980648547258
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalPosition.x
value: -14.918472
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalPosition.y
value: 1.0000176
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalPosition.z
value: 6.0022106
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
propertyPath: m_Name
value: PlantWarrior_With_Spear
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: -5515783359193845756, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
insertIndex: -1
addedObject: {fileID: 7069067296122378839}
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
--- !u!4 &1610120253448831934 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -5515783359193845756, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
m_PrefabInstance: {fileID: 2678598980648547258}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &7318602548037418428
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1610120253448831934}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalPosition.y
value: 0.15
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalRotation.x
value: 0.00000008146034
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: bec7726862777a042919c40fd38fce81, type: 3}
propertyPath: m_Name
value: PlantWarrior_Spear
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: bec7726862777a042919c40fd38fce81, type: 3}
--- !u!4 &7069067296122378839 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: bec7726862777a042919c40fd38fce81, type: 3}
m_PrefabInstance: {fileID: 7318602548037418428}
m_PrefabAsset: {fileID: 0}

View File

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

View File

@@ -0,0 +1,129 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &274662760238388128
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 8440547662176677020}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
propertyPath: m_Name
value: sword_1handed
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
--- !u!4 &307780991042516043 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: c85b70d5b9e5dda4d91f7d8ad5b574db, type: 3}
m_PrefabInstance: {fileID: 274662760238388128}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &5068477173941542040
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalPosition.x
value: -17.62028
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalPosition.y
value: 1.0000178
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalPosition.z
value: 7.511076
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 134023580cb126541be31f65cf1db789, type: 3}
propertyPath: m_Name
value: Skeleton_Minion_With_Sword
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: -5515783359193845756, guid: 134023580cb126541be31f65cf1db789, type: 3}
insertIndex: -1
addedObject: {fileID: 307780991042516043}
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 134023580cb126541be31f65cf1db789, type: 3}
--- !u!4 &8440547662176677020 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -5515783359193845756, guid: 134023580cb126541be31f65cf1db789, type: 3}
m_PrefabInstance: {fileID: 5068477173941542040}
m_PrefabAsset: {fileID: 0}

View File

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

47
Assets/Prefabs/Core.asset Normal file
View File

@@ -0,0 +1,47 @@
%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: Core
m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.TowerData
id: 0
memo:
buildingName:
level: 0
upgradeTo: 0
towerType:
mana: 0
manpower: 0
sizeX: 0
sizeY: 0
sizeZ: 0
maxHp: 0
sight: 100
atkRange: 0
atkDamage: 0
atkIntervalSec: 0
modelPath:
prefab: {fileID: 0}
icon: {fileID: 0}
placementOffset: {x: 0, y: 0, z: 0}
allowRotation: 1
isIndestructible: 0
autoRegenerate: 0
regenPerSecond: 1
providesVision: 1
constructionEquipment:
socketName: RightHand
equipmentPrefab: {fileID: 0}
attachOnStart: 1
detachOnEnd: 1
keepEquipped: 0
attachDelay: 0
detachDelay: 0

View File

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

View File

@@ -49,7 +49,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 3998537868
GlobalObjectIdHash: 615747208
InScenePlacedSourceGlobalObjectIdHash: 615747208
DeferredDespawnTick: 0
Ownership: 0
@@ -106,7 +106,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.Building
ShowTopMostFoldoutHeaderGroup: 1
buildingData: {fileID: 0}
buildingData: {fileID: 11400000, guid: 8e9cb7f0c2209b543b171709534789aa, type: 2}
gridPosition: {x: 0, y: 0, z: 0}
rotation: 0
initialTeam: 1
@@ -152,10 +152,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 1
showInExploredAreas: 1
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 50
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

File diff suppressed because it is too large Load Diff

View File

@@ -1641,6 +1641,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.EnemyUnit
ShowTopMostFoldoutHeaderGroup: 1
enableFogVisibility: 1
visibilityCheckInterval: 0.1
enemyTeam: 2
maxHealth: 50
damageEffectPrefab: {fileID: 4021103657954561961, guid: 5c755f9bc5253ea418e919994537dcc7, type: 3}

File diff suppressed because it is too large Load Diff

View File

@@ -1737,6 +1737,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.EnemyUnit
ShowTopMostFoldoutHeaderGroup: 1
enableFogVisibility: 1
visibilityCheckInterval: 0.1
enemyTeam: 3
maxHealth: 125
damageEffectPrefab: {fileID: 4021103657954561961, guid: 5c755f9bc5253ea418e919994537dcc7, type: 3}

View File

@@ -659,6 +659,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.EnemyUnit
ShowTopMostFoldoutHeaderGroup: 1
enableFogVisibility: 1
visibilityCheckInterval: 0.1
enemyTeam: 3
maxHealth: 65
damageEffectPrefab: {fileID: 4021103657954561961, guid: 5c755f9bc5253ea418e919994537dcc7, type: 3}

View File

@@ -1092,6 +1092,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.EnemyUnit
ShowTopMostFoldoutHeaderGroup: 1
enableFogVisibility: 1
visibilityCheckInterval: 0.1
enemyTeam: 3
maxHealth: 45
damageEffectPrefab: {fileID: 4021103657954561961, guid: 5c755f9bc5253ea418e919994537dcc7, type: 3}

View File

@@ -1337,6 +1337,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.EnemyUnit
ShowTopMostFoldoutHeaderGroup: 1
enableFogVisibility: 1
visibilityCheckInterval: 0.1
enemyTeam: 3
maxHealth: 100
damageEffectPrefab: {fileID: 4021103657954561961, guid: 5c755f9bc5253ea418e919994537dcc7, type: 3}

View File

@@ -319,10 +319,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -228,10 +228,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -138,10 +138,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -228,10 +228,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -228,10 +228,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -228,10 +228,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -319,10 +319,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -138,10 +138,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -228,10 +228,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -228,10 +228,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

View File

@@ -138,10 +138,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 760137a2fd0da7f458ac4b0ee7f485d6, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarVisibility
alwaysVisible: 0
showInExploredAreas: 0
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
baseVisibilityRange: 10
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0

File diff suppressed because it is too large Load Diff

View File

@@ -34,7 +34,6 @@ namespace Northbound
private int currentRotation = 0; // 0-3
private Material[] originalMaterials;
private Renderer[] previewRenderers;
private PlayerInputActions _inputActions;
// 드래그 건설 관련
private bool isDragging = false;
@@ -53,35 +52,35 @@ namespace Northbound
{
_playerController = GetComponent<NetworkPlayerController>();
// 지연 초기화 - 다음 프레임에 체크
StartCoroutine(InitializeAfterOwnerSet());
if (_playerController != null)
{
_playerController.OnInputInitialized += TryInitializeInput;
}
// 이미 로컬 플레이어면 입력 초기화 시도
TryInitializeInput();
}
private System.Collections.IEnumerator InitializeAfterOwnerSet()
private void Start()
{
// _ownerPlayerId가 설정될 때까지 대기 (최대 1초)
float timeout = 1f;
while (_playerController != null && _playerController.OwnerPlayerId == ulong.MaxValue && timeout > 0)
{
yield return null;
timeout -= Time.deltaTime;
}
// Start에서 다시 한번 확인 (이벤트 타이밍 문제 해결)
TryInitializeInput();
}
// 로컬 플레이어인지 확인
if (_playerController == null || !_playerController.IsLocalPlayer)
{
yield break;
}
private void TryInitializeInput()
{
if (_isInitialized) return; // 이미 초기화됨
if (_playerController == null || !_playerController.IsLocalPlayer) return;
if (_playerController.InputActions == null) return;
_isInitialized = true;
_inputActions = new PlayerInputActions();
_inputActions.Player.ToggleBuildMode.performed += OnToggleBuildMode;
_inputActions.Player.Rotate.performed += OnRotate;
_inputActions.Player.Build.performed += OnBuildPressed;
_inputActions.Player.Build.canceled += OnBuildReleased;
_inputActions.Player.Cancel.performed += OnCancel;
_inputActions.Enable();
var inputActions = _playerController.InputActions;
inputActions.Player.ToggleBuildMode.performed += OnToggleBuildMode;
inputActions.Player.Rotate.performed += OnRotate;
inputActions.Player.Build.performed += OnBuildPressed;
inputActions.Player.Build.canceled += OnBuildReleased;
inputActions.Player.Cancel.performed += OnCancel;
// Create default materials if not assigned
if (validMaterial == null)
@@ -144,15 +143,19 @@ namespace Northbound
public override void OnNetworkDespawn()
{
if (_isInitialized && _inputActions != null)
if (_playerController != null)
{
_inputActions.Player.ToggleBuildMode.performed -= OnToggleBuildMode;
_inputActions.Player.Rotate.performed -= OnRotate;
_inputActions.Player.Build.performed -= OnBuildPressed;
_inputActions.Player.Build.canceled -= OnBuildReleased;
_inputActions.Player.Cancel.performed -= OnCancel;
_inputActions.Disable();
_inputActions.Dispose();
_playerController.OnInputInitialized -= TryInitializeInput;
if (_isInitialized && _playerController.InputActions != null)
{
var inputActions = _playerController.InputActions;
inputActions.Player.ToggleBuildMode.performed -= OnToggleBuildMode;
inputActions.Player.Rotate.performed -= OnRotate;
inputActions.Player.Build.performed -= OnBuildPressed;
inputActions.Player.Build.canceled -= OnBuildReleased;
inputActions.Player.Cancel.performed -= OnCancel;
}
}
ClearDragPreviews();

View File

@@ -6,8 +6,16 @@ namespace Northbound
/// <summary>
/// 블랙스미스 건물 - 업그레이드 구매 가능
/// </summary>
public class Blacksmith : MonoBehaviour, IInteractable
public class Blacksmith : NetworkBehaviour, IInteractable, IVisionProvider, ITeamMember
{
[Header("Vision Settings")]
[Tooltip("블랙스미스가 제공하는 시야 범위")]
public float visionRange = 10f;
[Header("Team")]
[Tooltip("건물의 팀")]
public TeamType initialTeam = TeamType.Player;
[Header("UI Reference")]
[SerializeField] private GameObject _upgradePopupPrefab;
@@ -55,9 +63,6 @@ namespace Northbound
return transform;
}
#endregion
private void OpenUpgradePopup(ulong playerId)
@@ -115,12 +120,63 @@ namespace Northbound
return null;
}
private void OnDestroy()
public override void OnDestroy()
{
if (_popupInstance != null)
{
Destroy(_popupInstance);
}
base.OnDestroy();
}
#region NetworkBehaviour Overrides
public override void OnNetworkSpawn()
{
if (IsServer)
{
// 시야 제공자로 등록
FogOfWarSystem.Instance?.RegisterVisionProvider(this);
}
}
public override void OnNetworkDespawn()
{
if (IsServer)
{
// 시야 제공자 등록 해제
FogOfWarSystem.Instance?.UnregisterVisionProvider(this);
}
}
#endregion
#region IVisionProvider Implementation
public ulong GetOwnerId() => 0; // 블랙스미스는 모든 플레이어에게 시야 제공
public float GetVisionRange() => visionRange;
Transform IVisionProvider.GetTransform() => transform;
public bool IsActive() => IsSpawned;
TeamType IVisionProvider.GetTeam() => initialTeam;
#endregion
#region ITeamMember Implementation
public TeamType GetTeam() => initialTeam;
public bool IsDead() => false; // 블랙스미스는 파괴되지 않음
public void SetTeam(TeamType team)
{
// 블랙스미스의 팀은 변경할 수 없음
Debug.LogWarning("[Blacksmith] 블랙스미스의 팀은 변경할 수 없습니다.");
}
#endregion
}
}

View File

@@ -7,12 +7,15 @@ namespace Northbound
/// <summary>
/// 플레이어가 자원을 건내받아 게임의 전역 자원으로 관리하는 중앙 허브
/// </summary>
public class Core : NetworkBehaviour, IInteractable, IDamageable, ITeamMember
public class Core : NetworkBehaviour, IInteractable, IDamageable, ITeamMember, IVisionProvider
{
[Header("Core Settings")]
public int maxStorageCapacity = 1000; // 코어의 최대 저장 용량
public bool unlimitedStorage = false; // 무제한 저장소
[Header("Vision")]
public float visionRange = 15f; // 코어가 제공하는 시야 범위
[Header("Health")]
public int maxHealth = 1000;
public GameObject damageEffectPrefab;
@@ -55,6 +58,9 @@ namespace Northbound
{
_totalResources.Value = 0;
_currentHealth.Value = maxHealth;
// 시야 제공자로 등록
FogOfWarSystem.Instance?.RegisterVisionProvider(this);
}
_currentHealth.OnValueChanged += OnHealthChanged;
@@ -62,6 +68,12 @@ namespace Northbound
public override void OnNetworkDespawn()
{
if (IsServer)
{
// 시야 제공자 등록 해제
FogOfWarSystem.Instance?.UnregisterVisionProvider(this);
}
_currentHealth.OnValueChanged -= OnHealthChanged;
}
@@ -372,5 +384,19 @@ namespace Northbound
}
#endregion
#region IVisionProvider Implementation
public ulong GetOwnerId() => 0; // 코어는 모든 플레이어에게 시야 제공
public float GetVisionRange() => visionRange;
Transform IVisionProvider.GetTransform() => transform;
public bool IsActive() => IsSpawned && !IsDead();
TeamType IVisionProvider.GetTeam() => TeamType.Player;
#endregion
}
}

View File

@@ -203,8 +203,8 @@ namespace Northbound
networkObj.SpawnWithOwnership(NetworkManager.Singleton.LocalClientId);
// 비활성화는 ServerRpc를 통해 처리
DisablePickupClientRpc();
// NetworkVariable을 통해 가시성 동기화 (기본적으로 숨김)
_resourcePickup.SetVisible(false);
}
private void HandleCreepDeath(EnemyUnit deadCreep)
@@ -225,7 +225,8 @@ namespace Northbound
// 모든 creep이 처치되었으면 ResourcePickup 활성화
if (_spawnedCreeps.Count == 0 && _resourcePickup != null)
{
EnableResourcePickupClientRpc();
// NetworkVariable이 자동으로 클라이언트에 동기화됨
_resourcePickup.SetVisible(true);
}
}
@@ -262,24 +263,6 @@ namespace Northbound
}
}
[Rpc(SendTo.ClientsAndHost)]
private void EnableResourcePickupClientRpc()
{
if (_resourcePickup != null)
{
_resourcePickup.gameObject.SetActive(true);
}
}
[Rpc(SendTo.ClientsAndHost)]
private void DisablePickupClientRpc()
{
if (_resourcePickup != null)
{
_resourcePickup.gameObject.SetActive(false);
}
}
private CreepData GetCreepDataFromPrefab(GameObject prefab)
{
if (prefab == null) return null;

View File

@@ -114,7 +114,7 @@ namespace Northbound
private bool _isAttacking = false;
private GameObject _pendingAttackTarget;
private float _attackStartTime;
private const float ATTACK_TIMEOUT = 1f; // 애니메이션 이벤트 미발생 시 타임아웃
private const float ATTACK_TIMEOUT = 2f; // 애니메이션 이벤트 미발생 시 타임아웃 (애니메이션 길이 고려)
// 어그로 시스템
private Dictionary<ulong, float> _aggroTable = new Dictionary<ulong, float>();
@@ -592,6 +592,9 @@ namespace Northbound
public void OnAttackHit()
{
PerformAttack();
// 공격 완료 후 상태 리셋 (타임아웃 방지)
_isAttacking = false;
_pendingAttackTarget = null;
}
/// <summary>

View File

@@ -134,12 +134,21 @@ namespace Northbound
}
}
// FogOfWarSystem이 없으면 가시성 체크 안함
// FogOfWarSystem이 없으면 항상 보임
if (FogOfWarSystem.Instance == null)
{
if (_initializedVisibility) return;
_initializedVisibility = true;
SetRenderersEnabled(false);
SetRenderersEnabled(true); // FogOfWar가 없으면 항상 보임
return;
}
// FogOfWar가 비활성화되어 있으면 항상 보임
if (!FogOfWarSystem.Instance.gameObject.activeInHierarchy)
{
if (_initializedVisibility) return;
_initializedVisibility = true;
SetRenderersEnabled(true);
return;
}

View File

@@ -182,17 +182,39 @@ namespace Northbound
{
if (NetworkManager.Singleton == null) return ulong.MaxValue;
var localPlayer = NetworkManager.Singleton.SpawnManager.GetLocalPlayerObject();
if (localPlayer != null)
// 방법 1: SpawnManager에서 찾기
NetworkObject localPlayer = null;
if (NetworkManager.Singleton.SpawnManager != null)
{
var playerController = localPlayer.GetComponent<NetworkPlayerController>();
if (playerController != null)
localPlayer = NetworkManager.Singleton.SpawnManager.GetLocalPlayerObject();
}
// 방법 2: LocalClient에서 찾기
if (localPlayer == null && NetworkManager.Singleton.LocalClient != null)
{
localPlayer = NetworkManager.Singleton.LocalClient.PlayerObject;
}
// 방법 3: 직접 검색 (IsLocalPlayer인 플레이어 찾기)
if (localPlayer == null)
{
var allPlayers = FindObjectsByType<NetworkPlayerController>(FindObjectsSortMode.None);
foreach (var player in allPlayers)
{
return playerController.OwnerPlayerId;
if (player.IsLocalPlayer)
{
localPlayer = player.GetComponent<NetworkObject>();
break;
}
}
}
return ulong.MaxValue;
if (localPlayer == null) return ulong.MaxValue;
var playerController = localPlayer.GetComponent<NetworkPlayerController>();
if (playerController == null) return ulong.MaxValue;
return playerController.OwnerPlayerId;
}
/// <summary>

View File

@@ -307,7 +307,8 @@ namespace Northbound
if (!_visionProviders.Contains(provider))
{
_visionProviders.Add(provider);
// Debug.Log($"<color=cyan>[FogOfWar] Vision Provider 등록: {provider.GetTransform().name} (Owner: {provider.GetOwnerId()})</color>");
// 즉시 시야 업데이트 트리거
_updateTimer = updateInterval;
}
}

View File

@@ -10,6 +10,9 @@ namespace Northbound
public class FogOfWarVisibility : MonoBehaviour
{
[Header("Visibility Settings")]
[Tooltip("Always show this object regardless of fog state (for core, important structures)")]
public bool alwaysVisible = false;
[Tooltip("Show this object in explored areas (greyed out) or only when visible")]
public bool showInExploredAreas = false;
@@ -19,10 +22,13 @@ namespace Northbound
[Tooltip("Renderers to show/hide (auto-detected if empty)")]
public Renderer[] renderers;
[Header("Height-Based Distant Visibility")]
[Header("Extended Visibility")]
[Tooltip("Enable visibility from farther away based on object height")]
public bool enableDistantVisibility = true;
[Tooltip("Base visibility range (additional range beyond player vision)")]
public float baseVisibilityRange = 10f;
[Tooltip("Visibility range multiplier per unit of height (default: 2x vision per 1m height)")]
public float heightVisibilityMultiplier = 2.0f;
@@ -76,8 +82,17 @@ namespace Northbound
// CRITICAL: Start hidden and stay hidden until fog system confirms visibility
// Force initial hide - don't use SetVisible because _isVisible defaults to false
// which would cause early return
_isVisible = true; // Set to true first so SetVisible(false) actually runs
SetVisible(false);
// 단, alwaysVisible이면 항상 보임
if (alwaysVisible)
{
_isVisible = false;
SetVisible(true);
}
else
{
_isVisible = true; // Set to true first so SetVisible(false) actually runs
SetVisible(false);
}
}
/// <summary>
@@ -165,26 +180,55 @@ namespace Northbound
{
if (NetworkManager.Singleton == null) return ulong.MaxValue;
var localPlayer = NetworkManager.Singleton.SpawnManager.GetLocalPlayerObject();
if (localPlayer != null)
// 방법 1: SpawnManager에서 찾기
NetworkObject localPlayer = null;
if (NetworkManager.Singleton.SpawnManager != null)
{
var playerController = localPlayer.GetComponent<NetworkPlayerController>();
if (playerController != null)
localPlayer = NetworkManager.Singleton.SpawnManager.GetLocalPlayerObject();
}
// 방법 2: LocalClient에서 찾기
if (localPlayer == null && NetworkManager.Singleton.LocalClient != null)
{
localPlayer = NetworkManager.Singleton.LocalClient.PlayerObject;
}
// 방법 3: 직접 검색 (IsLocalPlayer인 플레이어 찾기)
if (localPlayer == null)
{
var allPlayers = FindObjectsByType<NetworkPlayerController>(FindObjectsSortMode.None);
foreach (var player in allPlayers)
{
return playerController.OwnerPlayerId;
if (player.IsLocalPlayer)
{
localPlayer = player.GetComponent<NetworkObject>();
break;
}
}
}
return ulong.MaxValue;
if (localPlayer == null) return ulong.MaxValue;
var playerController = localPlayer.GetComponent<NetworkPlayerController>();
if (playerController == null) return ulong.MaxValue;
return playerController.OwnerPlayerId;
}
private void UpdateVisibility()
{
var fogSystem = FogOfWarSystem.Instance;
if (fogSystem == null)
// 항상 보이는 객체는 fog 체크 안함
if (alwaysVisible)
{
// No fog system - stay hidden for safety
SetVisible(false);
SetVisible(true);
return;
}
var fogSystem = FogOfWarSystem.Instance;
if (fogSystem == null || !fogSystem.gameObject.activeInHierarchy)
{
// No fog system or disabled - always visible
SetVisible(true);
return;
}
@@ -268,11 +312,14 @@ namespace Northbound
// Calculate extended visibility range based on height
// Taller objects can be seen from farther away
// Formula: Base range + (height - minHeight) * multiplier
float extendedRange = (_objectHeight - minHeightForDistantVisibility) * heightVisibilityMultiplier;
float extendedRange = 0f;
if (_objectHeight >= minHeightForDistantVisibility)
{
extendedRange = (_objectHeight - minHeightForDistantVisibility) * heightVisibilityMultiplier;
}
// Get player's vision range (assume average vision provider has ~15 unit range)
float baseVisionRange = 15f; // You can make this configurable
float totalRange = baseVisionRange + extendedRange;
// Total range = player vision + base visibility + height bonus
float totalRange = baseVisibilityRange + extendedRange;
return distanceToPlayer <= totalRange;
}

View File

@@ -65,9 +65,15 @@ public class NetworkPlayerController : NetworkBehaviour, ITeamMember, IDamageabl
public ulong OwnerPlayerId => _ownerPlayerId.Value;
// 중앙 집중식 입력 관리 - 다른 컴포넌트에서 참조
public PlayerInputActions InputActions => _inputActions;
// 소유자 변경 이벤트
public event Action<ulong> OnOwnerChanged;
// 입력 시스템 초기화 완료 이벤트
public event Action OnInputInitialized;
void Awake()
{
_controller = GetComponent<CharacterController>();
@@ -141,6 +147,9 @@ public class NetworkPlayerController : NetworkBehaviour, ITeamMember, IDamageabl
_inputActions = new PlayerInputActions();
_inputActions.Enable();
// 입력 초기화 완료 이벤트 발생
OnInputInitialized?.Invoke();
}
/// <summary>
@@ -152,6 +161,28 @@ public class NetworkPlayerController : NetworkBehaviour, ITeamMember, IDamageabl
_ownerPlayerId.Value = ownerPlayerId;
}
/// <summary>
/// 입력 강제 복구 (입력이 멈췄을 때 호출)
/// </summary>
public void ForceRecoverInput()
{
if (!IsLocalPlayer) return;
// InputActions가 없으면 초기화 시도
if (_inputActions == null)
{
TryInitializeLocalPlayer();
return;
}
// InputActions가 있지만 비활성화되어 있으면 활성화
if (!_inputActions.Player.enabled && _currentHealth.Value > 0)
{
_inputActions.Enable();
Debug.Log("[NetworkPlayerController] 입력 강제 복구 완료");
}
}
public override void OnNetworkDespawn()
{
_currentHealth.OnValueChanged -= OnHealthChanged;
@@ -173,6 +204,10 @@ public class NetworkPlayerController : NetworkBehaviour, ITeamMember, IDamageabl
// 서버 측 이동 입력 저장
private Vector2 _serverMoveInput;
// 입력 복구 체크
private float _inputRecoveryCheckInterval = 1f; // 1초마다 체크
private float _inputRecoveryCheckTimer;
void Update()
{
// 서버에서 체력 자연 회복 처리
@@ -184,8 +219,24 @@ public class NetworkPlayerController : NetworkBehaviour, ITeamMember, IDamageabl
// 로컬 플레이어만 입력 처리
if (!IsLocalPlayer) return;
// 입력 시스템이 초기화되지 않았으면 스킵
if (_inputActions == null) return;
// 입력 시스템이 초기화되지 않았으면 초기화 시도
if (_inputActions == null)
{
TryInitializeLocalPlayer();
return;
}
// 주기적으로 입력 상태 확인 및 자동 복구 (살아있는데 입력이 비활성화된 경우)
_inputRecoveryCheckTimer += Time.deltaTime;
if (_inputRecoveryCheckTimer >= _inputRecoveryCheckInterval)
{
_inputRecoveryCheckTimer = 0f;
if (_currentHealth.Value > 0 && !_inputActions.Player.enabled)
{
Debug.LogWarning("[NetworkPlayerController] 입력이 비활성화되어 있음 - 자동 복구");
_inputActions.Enable();
}
}
// 죽었으면 이동 불가
if (_currentHealth.Value <= 0) return;

View File

@@ -17,11 +17,11 @@ namespace Northbound
[Header("Animation")]
public bool playAnimations = true;
private PlayerInputActions _inputActions;
private Dictionary<string, IAction> _actions = new Dictionary<string, IAction>();
private Animator _animator;
private NetworkAnimator _networkAnimator;
private NetworkPlayerController _networkPlayerController;
private bool _isInputInitialized = false;
// 로컬 플레이어인지 확인
private bool IsLocalPlayer => _networkPlayerController != null && _networkPlayerController.IsLocalPlayer;
@@ -49,12 +49,19 @@ namespace Northbound
if (_networkPlayerController != null)
{
_networkPlayerController.OnOwnerChanged += OnOwnerPlayerIdChanged;
_networkPlayerController.OnInputInitialized += TryInitializeInput;
}
// 이미 로컬 플레이어면 입력 초기화
TryInitializeInput();
}
private void Start()
{
// Start에서 다시 한번 확인 (이벤트 타이밍 문제 해결)
TryInitializeInput();
}
private void OnOwnerPlayerIdChanged(ulong newOwnerId)
{
TryInitializeInput();
@@ -63,11 +70,11 @@ namespace Northbound
private void TryInitializeInput()
{
if (!IsLocalPlayer) return;
if (_inputActions != null) return;
if (_isInputInitialized) return; // 이미 초기화됨
if (_networkPlayerController.InputActions == null) return; // 아직 InputActions가 없음
_inputActions = new PlayerInputActions();
_inputActions.Player.Attack.performed += OnAttack;
_inputActions.Enable();
_isInputInitialized = true;
_networkPlayerController.InputActions.Player.Attack.performed += OnAttack;
}
public override void OnNetworkDespawn()
@@ -75,13 +82,13 @@ namespace Northbound
if (_networkPlayerController != null)
{
_networkPlayerController.OnOwnerChanged -= OnOwnerPlayerIdChanged;
}
_networkPlayerController.OnInputInitialized -= TryInitializeInput;
if (_inputActions != null)
{
_inputActions.Player.Attack.performed -= OnAttack;
_inputActions.Disable();
_inputActions.Dispose();
// 입력 이벤트 해제
if (_networkPlayerController.InputActions != null)
{
_networkPlayerController.InputActions.Player.Attack.performed -= OnAttack;
}
}
}
@@ -126,11 +133,7 @@ namespace Northbound
override public void OnDestroy()
{
if (_inputActions != null)
{
_inputActions.Dispose();
}
// 입력 정리는 NetworkPlayerController에서 담당
base.OnDestroy();
}
}

View File

@@ -33,7 +33,6 @@ namespace Northbound
[Header("Worker")]
public Worker assignedWorker;
private PlayerInputActions _inputActions;
private IInteractable _currentInteractable;
private IInteractable _unavailableInteractable;
private Camera _mainCamera;
@@ -48,6 +47,7 @@ namespace Northbound
private NetworkPlayerController _networkPlayerController;
private PlayerStats _playerStats;
private bool _isInputInitialized = false;
public bool IsInteracting => _isInteracting;
public float WorkPower => _playerStats?.GetManpower() ?? 10f;
@@ -69,7 +69,7 @@ namespace Northbound
{
_animator = GetComponent<Animator>();
_equipmentSocket = GetComponent<EquipmentSocket>();
if (rayOrigin == null)
rayOrigin = transform;
@@ -77,12 +77,19 @@ namespace Northbound
if (_networkPlayerController != null)
{
_networkPlayerController.OnOwnerChanged += OnOwnerPlayerIdChanged;
_networkPlayerController.OnInputInitialized += TryInitializeInput;
}
// 이미 로컬 플레이어면 입력 초기화
TryInitializeInput();
}
private void Start()
{
// Start에서 다시 한번 확인 (이벤트 타이밍 문제 해결)
TryInitializeInput();
}
private void OnOwnerPlayerIdChanged(ulong newOwnerId)
{
TryInitializeInput();
@@ -91,12 +98,12 @@ namespace Northbound
private void TryInitializeInput()
{
if (!IsLocalPlayer) return;
if (_inputActions != null) return;
if (_isInputInitialized) return; // 이미 초기화됨
if (_networkPlayerController.InputActions == null) return; // 아직 InputActions가 없음
_isInputInitialized = true;
_mainCamera = Camera.main;
_inputActions = new PlayerInputActions();
_inputActions.Player.Interact.performed += OnInteract;
_inputActions.Enable();
_networkPlayerController.InputActions.Player.Interact.performed += OnInteract;
}
public override void OnNetworkDespawn()
@@ -104,13 +111,13 @@ namespace Northbound
if (_networkPlayerController != null)
{
_networkPlayerController.OnOwnerChanged -= OnOwnerPlayerIdChanged;
}
_networkPlayerController.OnInputInitialized -= TryInitializeInput;
if (_inputActions != null)
{
_inputActions.Player.Interact.performed -= OnInteract;
_inputActions.Disable();
_inputActions.Dispose();
// 입력 이벤트 해제
if (_networkPlayerController.InputActions != null)
{
_networkPlayerController.InputActions.Player.Interact.performed -= OnInteract;
}
}
}
@@ -402,10 +409,7 @@ namespace Northbound
public override void OnDestroy()
{
if (_inputActions != null)
{
_inputActions.Dispose();
}
// 입력 정리는 NetworkPlayerController에서 담당
}
}
}

View File

@@ -28,7 +28,74 @@ namespace Northbound
public GameObject pickupEffectPrefab;
public Transform effectSpawnPoint;
// 가시성 동기화 (기본적으로 숨김)
private NetworkVariable<bool> _isVisible = new NetworkVariable<bool>(
false,
NetworkVariableReadPermission.Everyone,
NetworkVariableWritePermission.Server
);
private bool _isCollected = false;
private Renderer[] _renderers;
private Collider[] _colliders;
public override void OnNetworkSpawn()
{
base.OnNetworkSpawn();
// 렌더러와 콜라이더 캐시
_renderers = GetComponentsInChildren<Renderer>();
_colliders = GetComponentsInChildren<Collider>();
// 초기 가시성 적용
UpdateVisibility(_isVisible.Value);
// 가시성 변경 이벤트 구독
_isVisible.OnValueChanged += OnVisibilityChanged;
}
public override void OnNetworkDespawn()
{
_isVisible.OnValueChanged -= OnVisibilityChanged;
base.OnNetworkDespawn();
}
private void OnVisibilityChanged(bool previousValue, bool newValue)
{
UpdateVisibility(newValue);
}
private void UpdateVisibility(bool visible)
{
if (_renderers != null)
{
foreach (var renderer in _renderers)
{
if (renderer != null)
renderer.enabled = visible;
}
}
if (_colliders != null)
{
foreach (var collider in _colliders)
{
if (collider != null)
collider.enabled = visible;
}
}
}
/// <summary>
/// 가시성 설정 (서버만 호출 가능)
/// </summary>
public void SetVisible(bool visible)
{
if (IsServer)
{
_isVisible.Value = visible;
}
}
public bool CanInteract(ulong playerId)
{

View File

@@ -0,0 +1,391 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using Unity.Netcode;
namespace Northbound
{
/// <summary>
/// 팀원 체력 UI 관리
/// Slot 1: 로컬 플레이어 (본인)
/// Slot 2~4: 다른 플레이어 (플레이어 ID 순)
/// </summary>
public class TeamHealthUI : MonoBehaviour
{
[Header("Slot References (자동 할당됨)")]
[SerializeField] private TeamCardSlot slot1; // 로컬 플레이어 (본인)
[SerializeField] private TeamCardSlot slot2; // 다른 플레이어 1
[SerializeField] private TeamCardSlot slot3; // 다른 플레이어 2
[SerializeField] private TeamCardSlot slot4; // 다른 플레이어 3
private Dictionary<ulong, NetworkPlayerController> _playerControllers = new Dictionary<ulong, NetworkPlayerController>();
private Dictionary<ulong, TeamCardSlot> _playerSlotMapping = new Dictionary<ulong, TeamCardSlot>();
private ulong _localPlayerId = ulong.MaxValue;
private void Awake()
{
// 슬롯 초기화
InitializeSlots();
}
private void Start()
{
// 네트워크 이벤트 구독
if (NetworkManager.Singleton != null)
{
NetworkManager.Singleton.OnClientConnectedCallback += OnClientConnected;
NetworkManager.Singleton.OnClientDisconnectCallback += OnClientDisconnect;
}
// 이미 연결된 플레이어들 처리
RefreshAllPlayers();
}
private void OnDestroy()
{
// 이벤트 구독 해제
if (NetworkManager.Singleton != null)
{
NetworkManager.Singleton.OnClientConnectedCallback -= OnClientConnected;
NetworkManager.Singleton.OnClientDisconnectCallback -= OnClientDisconnect;
}
// 모든 플레이어 체력 변경 이벤트 구독 해제
foreach (var kvp in _playerControllers)
{
if (kvp.Value != null)
{
kvp.Value.OnOwnerChanged -= OnPlayerOwnerChanged;
}
}
}
private void InitializeSlots()
{
// 슬롯 자동 할당 - 이름으로 찾기
if (slot1 == null) slot1 = FindSlotByName("Slot_1");
if (slot2 == null) slot2 = FindSlotByName("Slot_2");
if (slot3 == null) slot3 = FindSlotByName("Slot_3");
if (slot4 == null) slot4 = FindSlotByName("Slot_4");
// 모든 슬롯 초기화 (비어있음)
slot1?.Clear();
slot2?.Clear();
slot3?.Clear();
slot4?.Clear();
}
/// <summary>
/// 이름으로 슬롯 찾기 (자식의 자식 프리팹까지 검색)
/// </summary>
private TeamCardSlot FindSlotByName(string slotName)
{
// 직접 자식에서 찾기
Transform slotTransform = transform.Find(slotName);
if (slotTransform == null) return null;
// 자식 프리팹에서 TeamCardSlot 찾기 또는 생성
TeamCardSlot slot = slotTransform.GetComponentInChildren<TeamCardSlot>(true);
if (slot == null)
{
// TeamCardSlot 컴포넌트를 자식 프리팹의 루트에 추가
// 프리팹 인스턴스의 첫 번째 자식이 실제 카드 프리팹
if (slotTransform.childCount > 0)
{
GameObject cardObj = slotTransform.GetChild(0).gameObject;
slot = cardObj.AddComponent<TeamCardSlot>();
}
else
{
// 자식이 없으면 슬롯 자체에 추가
slot = slotTransform.gameObject.AddComponent<TeamCardSlot>();
}
}
return slot;
}
private void OnClientConnected(ulong clientId)
{
// 약간의 딜레이 후 플레이어 컨트롤러가 생성될 때까지 대기
Invoke(nameof(RefreshAllPlayers), 0.5f);
}
private void OnClientDisconnect(ulong clientId)
{
// 플레이어 제거
RemovePlayer(clientId);
}
private void RefreshAllPlayers()
{
// 로컬 플레이어 ID 확인
if (NetworkManager.Singleton != null)
{
_localPlayerId = NetworkManager.Singleton.LocalClientId;
}
// 모든 NetworkPlayerController 찾기
var allPlayers = FindObjectsByType<NetworkPlayerController>(FindObjectsSortMode.None);
// 기존 매핑 클리어
_playerControllers.Clear();
// 플레이어 등록
foreach (var player in allPlayers)
{
ulong playerId = player.OwnerPlayerId;
if (playerId != ulong.MaxValue)
{
_playerControllers[playerId] = player;
player.OnOwnerChanged -= OnPlayerOwnerChanged;
player.OnOwnerChanged += OnPlayerOwnerChanged;
}
}
// UI 업데이트
UpdateAllSlots();
}
private void OnPlayerOwnerChanged(ulong newOwnerId)
{
// 플레이어 소유자 변경 시 갱신
Invoke(nameof(RefreshAllPlayers), 0.1f);
}
private void UpdateAllSlots()
{
// 기존 매핑 클리어
_playerSlotMapping.Clear();
slot1?.Clear();
slot2?.Clear();
slot3?.Clear();
slot4?.Clear();
// 로컬 플레이어를 Slot 1에 배치
if (_playerControllers.TryGetValue(_localPlayerId, out var localPlayer))
{
slot1?.SetPlayer(localPlayer, true);
_playerSlotMapping[_localPlayerId] = slot1;
}
// 다른 플레이어들을 ID 순으로 Slot 2~4에 배치
var otherPlayers = new List<KeyValuePair<ulong, NetworkPlayerController>>();
foreach (var kvp in _playerControllers)
{
if (kvp.Key != _localPlayerId)
{
otherPlayers.Add(kvp);
}
}
// ID 순으로 정렬
otherPlayers.Sort((a, b) => a.Key.CompareTo(b.Key));
// 슬롯에 배치
var slots = new[] { slot2, slot3, slot4 };
for (int i = 0; i < otherPlayers.Count && i < slots.Length; i++)
{
var player = otherPlayers[i];
slots[i]?.SetPlayer(player.Value, false);
_playerSlotMapping[player.Key] = slots[i];
}
}
private void RemovePlayer(ulong playerId)
{
if (_playerControllers.TryGetValue(playerId, out var player))
{
player.OnOwnerChanged -= OnPlayerOwnerChanged;
_playerControllers.Remove(playerId);
}
if (_playerSlotMapping.TryGetValue(playerId, out var slot))
{
slot?.Clear();
_playerSlotMapping.Remove(playerId);
}
// 슬롯 재배치
UpdateAllSlots();
}
}
/// <summary>
/// 개별 팀 카드 슬롯
/// TeamCard_Large 또는 TeamCard_Small 프리팹에 붙여서 사용
/// </summary>
public class TeamCardSlot : MonoBehaviour
{
[Header("UI References (자동 할당됨)")]
[SerializeField] private TextMeshProUGUI _playerNameText;
[SerializeField] private Image _hpBarFill;
[SerializeField] private TextMeshProUGUI _hpText;
private NetworkPlayerController _player;
private bool _isLocalPlayer;
private int _lastHealth = -1;
private int _lastMaxHealth = -1;
private void Awake()
{
// 자동으로 UI 요소 찾기
FindUIElements();
}
private void FindUIElements()
{
// PlayerNameText 찾기 - 이름으로 정확히 찾기
if (_playerNameText == null)
{
Transform nameText = FindDeepChild(transform, "PlayerNameText");
if (nameText != null)
{
_playerNameText = nameText.GetComponent<TextMeshProUGUI>();
}
}
// HPBarFill 찾기
if (_hpBarFill == null)
{
Transform hpFill = FindDeepChild(transform, "HPBarFill");
if (hpFill != null)
{
_hpBarFill = hpFill.GetComponent<Image>();
}
}
// HPText 찾기
if (_hpText == null)
{
Transform hpText = FindDeepChild(transform, "HPText");
if (hpText != null)
{
_hpText = hpText.GetComponent<TextMeshProUGUI>();
}
}
}
/// <summary>
/// 깊이 우선 탐색으로 자식 찾기
/// </summary>
private Transform FindDeepChild(Transform parent, string name)
{
// 직접 자식에서 찾기
Transform found = parent.Find(name);
if (found != null) return found;
// 재귀적으로 자식의 자식에서 찾기
for (int i = 0; i < parent.childCount; i++)
{
found = FindDeepChild(parent.GetChild(i), name);
if (found != null) return found;
}
return null;
}
public void SetPlayer(NetworkPlayerController player, bool isLocalPlayer)
{
_player = player;
_isLocalPlayer = isLocalPlayer;
_lastHealth = -1; // 강제 업데이트를 위해 리셋
_lastMaxHealth = -1;
if (player == null)
{
Clear();
return;
}
// UI 요소가 없으면 다시 찾기
FindUIElements();
// 플레이어 이름 설정
if (_playerNameText != null)
{
string playerName = $"Player {player.OwnerPlayerId + 1}";
if (isLocalPlayer)
{
playerName += " (YOU)";
}
_playerNameText.text = playerName;
}
// 초기 체력 업데이트
UpdateHealth();
// 활성화
gameObject.SetActive(true);
}
public void Clear()
{
_player = null;
_lastHealth = -1;
_lastMaxHealth = -1;
if (_playerNameText != null)
{
_playerNameText.text = "Waiting...";
}
if (_hpBarFill != null)
{
_hpBarFill.fillAmount = 0f;
}
if (_hpText != null)
{
_hpText.text = "--- / ---";
}
}
private void LateUpdate()
{
// 체력 업데이트 (변경 시에만)
if (_player != null)
{
int currentHp = _player.GetCurrentHealth();
int maxHp = _player.GetMaxHealth();
// 체력이나 최대 체력이 변경된 경우에만 UI 업데이트
if (currentHp != _lastHealth || maxHp != _lastMaxHealth)
{
UpdateHealth();
_lastHealth = currentHp;
_lastMaxHealth = maxHp;
}
}
}
private void UpdateHealth()
{
if (_player == null) return;
int currentHp = _player.GetCurrentHealth();
int maxHp = _player.GetMaxHealth();
float hpPercent = maxHp > 0 ? (float)currentHp / maxHp : 0f;
if (_hpBarFill != null)
{
_hpBarFill.fillAmount = hpPercent;
}
if (_hpText != null)
{
_hpText.text = $"{currentHp} / {maxHp}";
}
}
/// <summary>
/// 에디터에서 UI 요소 자동 할당
/// </summary>
[ContextMenu("Auto Find UI Elements")]
private void AutoFindUIElements()
{
FindUIElements();
Debug.Log($"[TeamCardSlot] UI Elements Found - Name: {_playerNameText != null}, HPFill: {_hpBarFill != null}, HPText: {_hpText != null}");
}
}
}

View File

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

View File

@@ -3,8 +3,16 @@ using UnityEngine;
namespace Northbound
{
public class WorkerSpawner : NetworkBehaviour, IInteractable
public class WorkerSpawner : NetworkBehaviour, IInteractable, IVisionProvider, ITeamMember
{
[Header("Vision Settings")]
[Tooltip("워커 홀이 제공하는 시야 범위")]
public float visionRange = 10f;
[Header("Team")]
[Tooltip("건물의 팀")]
public TeamType initialTeam = TeamType.Player;
[Header("Spawner Settings")]
public GameObject workerPrefab;
public Transform spawnPoint;
@@ -34,11 +42,24 @@ namespace Northbound
{
base.OnNetworkSpawn();
_workerCount.OnValueChanged += OnWorkerCountChanged;
if (IsServer)
{
// 시야 제공자로 등록
FogOfWarSystem.Instance?.RegisterVisionProvider(this);
}
}
public override void OnNetworkDespawn()
{
_workerCount.OnValueChanged -= OnWorkerCountChanged;
if (IsServer)
{
// 시야 제공자 등록 해제
FogOfWarSystem.Instance?.UnregisterVisionProvider(this);
}
base.OnNetworkDespawn();
}
@@ -240,9 +261,37 @@ namespace Northbound
Vector3 spawnCenter = spawnPoint != null ? spawnPoint.position : transform.position;
Gizmos.DrawWireSphere(spawnCenter, spawnRadius);
UnityEditor.Handles.Label(spawnCenter + Vector3.up * 2f,
UnityEditor.Handles.Label(spawnCenter + Vector3.up * 2f,
$"Worker Spawner\nWorkers: {_workerCount.Value}/{maxWorkers}");
#endif
}
#region IVisionProvider Implementation
public ulong GetOwnerId() => 0; // 워커 홀은 모든 플레이어에게 시야 제공
public float GetVisionRange() => visionRange;
Transform IVisionProvider.GetTransform() => transform;
public bool IsActive() => IsSpawned;
TeamType IVisionProvider.GetTeam() => initialTeam;
#endregion
#region ITeamMember Implementation
public TeamType GetTeam() => initialTeam;
public bool IsDead() => false; // 워커 홀은 파괴되지 않음
public void SetTeam(TeamType team)
{
// 워커 홀의 팀은 변경할 수 없음
Debug.LogWarning("[WorkerSpawner] 워커 홀의 팀은 변경할 수 없습니다.");
}
#endregion
}
}

8
Assets/UI/TeamCard.meta Normal file
View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 6c97158fbcfbbf242ae9b266c285261e
TextureImporter:
internalIDToNameTable:
- first:
213: 8957537473066040245
second: HPBar_green_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: HPBar_green_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 41
height: 41
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 5bbf9586fd09f4c70800000000000000
internalID: 8957537473066040245
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
HPBar_green_0: 8957537473066040245
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,990 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &900691420667464671
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3909561321110962711}
- component: {fileID: 4562475140131647601}
- component: {fileID: 3641503078295860797}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3909561321110962711
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 900691420667464671}
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: 1671567835747073886}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 450, y: 130}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4562475140131647601
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 900691420667464671}
m_CullTransparentMesh: 1
--- !u!114 &3641503078295860797
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 900691420667464671}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 0.5254902}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &1397827455277597976
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1909221061409215995}
- component: {fileID: 4115447053854238644}
m_Layer: 5
m_Name: Row_HP
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1909221061409215995
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1397827455277597976}
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:
- {fileID: 3623982467735649376}
- {fileID: 6479671700234456601}
m_Father: {fileID: 1848615146409787736}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4115447053854238644
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1397827455277597976}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &1524661661008175776
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3623982467735649376}
m_Layer: 5
m_Name: HPBarRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3623982467735649376
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1524661661008175776}
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:
- {fileID: 4526962547313490101}
- {fileID: 6546054952217937965}
m_Father: {fileID: 1909221061409215995}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 320, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1887481747058627097
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1671567835747073886}
m_Layer: 5
m_Name: TeamCard_Large
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1671567835747073886
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1887481747058627097}
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:
- {fileID: 3909561321110962711}
- {fileID: 1511118888812183331}
- {fileID: 6493168435657054733}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &2263815619202694770
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8270131593793046794}
- component: {fileID: 6874510865284232069}
- component: {fileID: 5228251429256210363}
m_Layer: 5
m_Name: PlayerNameText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8270131593793046794
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2263815619202694770}
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: 4715303447718307229}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6874510865284232069
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2263815619202694770}
m_CullTransparentMesh: 1
--- !u!114 &5228251429256210363
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2263815619202694770}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Player 1 (YOU)
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: cac3ad1b064570d46abc7f664d02d23e, type: 2}
m_sharedMaterial: {fileID: -8208170789151758778, guid: cac3ad1b064570d46abc7f664d02d23e, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &2332988383367038871
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1511118888812183331}
- component: {fileID: 2760543776975673489}
m_Layer: 5
m_Name: Content
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1511118888812183331
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2332988383367038871}
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:
- {fileID: 2795229366996019796}
- {fileID: 1848615146409787736}
m_Father: {fileID: 1671567835747073886}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 30, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2760543776975673489
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2332988383367038871}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.HorizontalLayoutGroup
m_Padding:
m_Left: 10
m_Right: 10
m_Top: 10
m_Bottom: 10
m_ChildAlignment: 3
m_Spacing: 10
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 1
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &4445285748216119847
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2795229366996019796}
- component: {fileID: 1593405979637777621}
- component: {fileID: 2612123753227482464}
- component: {fileID: 8985400032926287030}
m_Layer: 5
m_Name: PortraitFrame
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2795229366996019796
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4445285748216119847}
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: 1511118888812183331}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1593405979637777621
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4445285748216119847}
m_CullTransparentMesh: 1
--- !u!114 &2612123753227482464
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4445285748216119847}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &8985400032926287030
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4445285748216119847}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
m_IgnoreLayout: 0
m_MinWidth: 100
m_MinHeight: 100
m_PreferredWidth: 100
m_PreferredHeight: 100
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &4855823295685342202
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4715303447718307229}
- component: {fileID: 1772785610992859156}
m_Layer: 5
m_Name: Row_Name
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4715303447718307229
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4855823295685342202}
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:
- {fileID: 8270131593793046794}
m_Father: {fileID: 1848615146409787736}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1772785610992859156
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4855823295685342202}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
m_IgnoreLayout: 0
m_MinWidth: 320
m_MinHeight: 50
m_PreferredWidth: 320
m_PreferredHeight: 50
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &5635920112903963799
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6546054952217937965}
- component: {fileID: 1411402556195867580}
- component: {fileID: 392033387581393578}
m_Layer: 5
m_Name: HPBarFill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6546054952217937965
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5635920112903963799}
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: 3623982467735649376}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 320, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1411402556195867580
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5635920112903963799}
m_CullTransparentMesh: 1
--- !u!114 &392033387581393578
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5635920112903963799}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 8957537473066040245, guid: 6c97158fbcfbbf242ae9b266c285261e, type: 3}
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6318370184295727766
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6479671700234456601}
- component: {fileID: 919834822258377369}
- component: {fileID: 157813252385139848}
m_Layer: 5
m_Name: HPText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6479671700234456601
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6318370184295727766}
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: 1909221061409215995}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 320, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &919834822258377369
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6318370184295727766}
m_CullTransparentMesh: 1
--- !u!114 &157813252385139848
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6318370184295727766}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 100 / 100
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 72491e21fef70124c9ebc25ff62fd3e9, type: 2}
m_sharedMaterial: {fileID: 9147849279665769802, guid: 72491e21fef70124c9ebc25ff62fd3e9, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 32
m_fontSizeBase: 32
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6360479704059743584
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1848615146409787736}
- component: {fileID: 1704105055393465885}
m_Layer: 5
m_Name: InfoGroup
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1848615146409787736
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6360479704059743584}
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:
- {fileID: 4715303447718307229}
- {fileID: 1909221061409215995}
m_Father: {fileID: 1511118888812183331}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1704105055393465885
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6360479704059743584}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 10
m_Bottom: 40
m_ChildAlignment: 3
m_Spacing: 20
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 1
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &6711787659623841782
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4526962547313490101}
- component: {fileID: 4986890417745144886}
- component: {fileID: 7857089966618426166}
m_Layer: 5
m_Name: HPBarBG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4526962547313490101
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6711787659623841782}
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: 3623982467735649376}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 320, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4986890417745144886
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6711787659623841782}
m_CullTransparentMesh: 1
--- !u!114 &7857089966618426166
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6711787659623841782}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8992019966963279634
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6493168435657054733}
- component: {fileID: 1615791677248318544}
- component: {fileID: 89451014552905569}
m_Layer: 5
m_Name: StatusScreen
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6493168435657054733
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8992019966963279634}
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: 1671567835747073886}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1615791677248318544
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8992019966963279634}
m_CullTransparentMesh: 1
--- !u!114 &89451014552905569
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8992019966963279634}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0.003921569, g: 0.003921569, b: 0.003921569, a: 0}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

View File

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

View File

@@ -0,0 +1,969 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2074171136745008206
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5198198148521458082}
- component: {fileID: 1826486670657657610}
- component: {fileID: 8273750792848853139}
m_Layer: 5
m_Name: HPBarFill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5198198148521458082
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2074171136745008206}
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: 3702526597436997994}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 260, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1826486670657657610
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2074171136745008206}
m_CullTransparentMesh: 1
--- !u!114 &8273750792848853139
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2074171136745008206}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 8957537473066040245, guid: 6c97158fbcfbbf242ae9b266c285261e, type: 3}
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2253511433390990024
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1284898007502304109}
m_Layer: 5
m_Name: TeamCard_Small
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1284898007502304109
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2253511433390990024}
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:
- {fileID: 7560997970798250675}
- {fileID: 8503868087006291890}
- {fileID: 4561880499055873524}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -15, y: 0}
m_SizeDelta: {x: 30, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &2900382378627822061
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4561880499055873524}
- component: {fileID: 8627558946663358117}
- component: {fileID: 8207203923599803865}
m_Layer: 5
m_Name: StatusScreen
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4561880499055873524
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2900382378627822061}
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: 1284898007502304109}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8627558946663358117
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2900382378627822061}
m_CullTransparentMesh: 1
--- !u!114 &8207203923599803865
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2900382378627822061}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0.003921569, g: 0.003921569, b: 0.003921569, a: 0.95686275}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2968470668028046660
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5917359228874704445}
- component: {fileID: 5042915766726483101}
m_Layer: 5
m_Name: InfoGroup
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5917359228874704445
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2968470668028046660}
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:
- {fileID: 194619546641387405}
- {fileID: 291540299496549388}
m_Father: {fileID: 8503868087006291890}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 250, y: 80}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5042915766726483101
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2968470668028046660}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 20
m_ChildAlignment: 3
m_Spacing: 10
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 1
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &3640157395410386983
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7560997970798250675}
- component: {fileID: 2705099275371687515}
- component: {fileID: 8518698171192333884}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7560997970798250675
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3640157395410386983}
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: 1284898007502304109}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 370, y: 90}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2705099275371687515
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3640157395410386983}
m_CullTransparentMesh: 1
--- !u!114 &8518698171192333884
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3640157395410386983}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 0.5254902}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4102094337288095666
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 291540299496549388}
- component: {fileID: 4720487827404151422}
m_Layer: 5
m_Name: Row_HP
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &291540299496549388
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4102094337288095666}
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:
- {fileID: 3702526597436997994}
- {fileID: 6245799478517062558}
m_Father: {fileID: 5917359228874704445}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4720487827404151422
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4102094337288095666}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &4343589651227387619
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8503868087006291890}
- component: {fileID: 4482117481812084865}
m_Layer: 5
m_Name: Content
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8503868087006291890
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4343589651227387619}
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:
- {fileID: 2205644490763987176}
- {fileID: 5917359228874704445}
m_Father: {fileID: 1284898007502304109}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 370, y: 90}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4482117481812084865
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4343589651227387619}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.HorizontalLayoutGroup
m_Padding:
m_Left: 10
m_Right: 10
m_Top: 10
m_Bottom: 10
m_ChildAlignment: 3
m_Spacing: 10
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &5793376694639013665
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2205644490763987176}
- component: {fileID: 1577489590812274390}
- component: {fileID: 4030882051384975456}
m_Layer: 5
m_Name: PortraitFrame
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2205644490763987176
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5793376694639013665}
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: 8503868087006291890}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 80, y: 80}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1577489590812274390
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5793376694639013665}
m_CullTransparentMesh: 1
--- !u!114 &4030882051384975456
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5793376694639013665}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6414600283166031257
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6245799478517062558}
- component: {fileID: 5135884166251837940}
- component: {fileID: 1343573155229754827}
m_Layer: 5
m_Name: HPText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6245799478517062558
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6414600283166031257}
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: 291540299496549388}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 250, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5135884166251837940
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6414600283166031257}
m_CullTransparentMesh: 1
--- !u!114 &1343573155229754827
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6414600283166031257}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 100 / 100
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 72491e21fef70124c9ebc25ff62fd3e9, type: 2}
m_sharedMaterial: {fileID: 9147849279665769802, guid: 72491e21fef70124c9ebc25ff62fd3e9, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 28
m_fontSizeBase: 28
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &7834539181679316471
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3702526597436997994}
m_Layer: 5
m_Name: HPBarRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3702526597436997994
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7834539181679316471}
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:
- {fileID: 3802551536411645914}
- {fileID: 5198198148521458082}
m_Father: {fileID: 291540299496549388}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 260, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &8164887723793364555
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3802551536411645914}
- component: {fileID: 3656180201220190327}
- component: {fileID: 1104169946164349632}
m_Layer: 5
m_Name: HPBarBG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3802551536411645914
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8164887723793364555}
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: 3702526597436997994}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 260, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3656180201220190327
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8164887723793364555}
m_CullTransparentMesh: 1
--- !u!114 &1104169946164349632
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8164887723793364555}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8988597135719243260
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 194619546641387405}
- component: {fileID: 6633126197091541793}
m_Layer: 5
m_Name: Row_Name
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &194619546641387405
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8988597135719243260}
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:
- {fileID: 4888232951558913288}
m_Father: {fileID: 5917359228874704445}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6633126197091541793
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8988597135719243260}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
m_IgnoreLayout: 0
m_MinWidth: 320
m_MinHeight: 50
m_PreferredWidth: 320
m_PreferredHeight: 50
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &9132062344038458924
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4888232951558913288}
- component: {fileID: 6038280827777648504}
- component: {fileID: 4716558580110790481}
m_Layer: 5
m_Name: PlayerNameText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4888232951558913288
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9132062344038458924}
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: 194619546641387405}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6038280827777648504
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9132062344038458924}
m_CullTransparentMesh: 1
--- !u!114 &4716558580110790481
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9132062344038458924}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Player 4
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: cac3ad1b064570d46abc7f664d02d23e, type: 2}
m_sharedMaterial: {fileID: -8208170789151758778, guid: cac3ad1b064570d46abc7f664d02d23e, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 32
m_fontSizeBase: 32
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}

View File

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

View File

@@ -1,3 +1,3 @@
id,memo,move_speed,max_hp,sight,atk_range,atk_damage,atk_interval_sec,cost,weight,model_path,animation_controller_path
1,기본1,4,75,6,1,10,2,2,1,Assets/Models/PlantWarrior.fbx,Assets/Animations/MonsterAnimationController.controller
1,기본1,4,75,6,1,10,2,2,1,Assets/Models/PlantWarrior_With_Spear.fbx,Assets/Animations/MonsterAnimationController.controller
2,기본2,3.5,50,6,4,15,4,5,0.5,Assets/Models/Rogue.fbx,Assets/Animations/MonsterAnimationController.controller
1 id memo move_speed max_hp sight atk_range atk_damage atk_interval_sec cost weight model_path animation_controller_path
2 1 기본1 4 75 6 1 10 2 2 1 Assets/Models/PlantWarrior.fbx Assets/Models/PlantWarrior_With_Spear.fbx Assets/Animations/MonsterAnimationController.controller
3 2 기본2 3.5 50 6 4 15 4 5 0.5 Assets/Models/Rogue.fbx Assets/Animations/MonsterAnimationController.controller

View File

@@ -1,5 +1,5 @@
id,memo,move_speed,max_hp,sight,atk_range,atk_damage,atk_interval_sec,cost,weight,model_path,animation_controller_path,wave_min,wave_max
101,Grunt(기본),4.5,75,6,1,3,1.2,3,1,Assets/Models/Skeleton_Minion.fbx,Assets/Animations/MonsterAnimationController.controller,1,10
101,Grunt(기본),4.5,75,6,1,3,1.2,3,1,Assets/Models/Skeleton_Minion_With_Sword.fbx,Assets/Animations/MonsterAnimationController.controller,1,10
102,Tank(느림/단단),2.5,125,6,1,4,1.5,5,0.5,Assets/Models/Druid.fbx,Assets/Animations/MonsterAnimationController.controller,3,15
103,Ranged(원거리/약함),3.5,65,6,5,2,1.4,3,0.2,Assets/Models/Skeleton_Warrior.fbx,Assets/Animations/MonsterAnimationController.controller,3,20
104,Fast(빠름/약함),6,45,6,1,2,1,3,0.333,Assets/Models/Skeleton_Rogue.fbx,Assets/Animations/MonsterAnimationController.controller,3,20
1 id memo move_speed max_hp sight atk_range atk_damage atk_interval_sec cost weight model_path animation_controller_path wave_min wave_max
2 101 Grunt(기본) 4.5 75 6 1 3 1.2 3 1 Assets/Models/Skeleton_Minion.fbx Assets/Models/Skeleton_Minion_With_Sword.fbx Assets/Animations/MonsterAnimationController.controller 1 10
3 102 Tank(느림/단단) 2.5 125 6 1 4 1.5 5 0.5 Assets/Models/Druid.fbx Assets/Animations/MonsterAnimationController.controller 3 15
4 103 Ranged(원거리/약함) 3.5 65 6 5 2 1.4 3 0.2 Assets/Models/Skeleton_Warrior.fbx Assets/Animations/MonsterAnimationController.controller 3 20
5 104 Fast(빠름/약함) 6 45 6 1 2 1 3 0.333 Assets/Models/Skeleton_Rogue.fbx Assets/Animations/MonsterAnimationController.controller 3 20