네트워크 환경에서의 비정상 동작 수정

클라이언트 접속 전에 스폰되어 있는 오브젝트의 경우, Ownership이 Distributable일 경우 클라이언트 접속 시점에 Ownership을 호스트로부터 분배받는다.
서버만 데이터를 수정해야 하는 환경이기 때문에 대부분 Distributable 대신 None을 사용하면 된다.
This commit is contained in:
2026-02-17 01:53:06 +09:00
parent cc2487e7e4
commit 63a742d5d4
40 changed files with 582 additions and 316 deletions

View File

@@ -15,7 +15,7 @@ MonoBehaviour:
id: 1
memo: "\uD0C0\uC6CC"
buildingName:
mana: 0
mana: 100
manpower: 10
sizeX: 4
sizeY: 10

View File

@@ -79,7 +79,7 @@ MonoBehaviour:
GlobalObjectIdHash: 437508337
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -196,6 +196,7 @@ MonoBehaviour:
speedParam: Speed
attackTriggerParam: Attack
isMovingParam: IsMoving
dieTriggerParam: Die
autoLoadFromMonsterData: 1
debugLogging: 0
--- !u!114 &3928237758911375249
@@ -243,6 +244,10 @@ MonoBehaviour:
NameHash: -823668238
Synchronize: 1
ParameterType: 1
- name: Die
NameHash: 20298039
Synchronize: 1
ParameterType: 9
AnimatorParametersExpanded: 0
--- !u!114 &-8703503294977252669
MonoBehaviour:

View File

@@ -79,7 +79,7 @@ MonoBehaviour:
GlobalObjectIdHash: 209349728
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -210,6 +210,7 @@ MonoBehaviour:
speedParam: Speed
attackTriggerParam: Attack
isMovingParam: IsMoving
dieTriggerParam: Die
autoLoadFromMonsterData: 1
debugLogging: 0
--- !u!114 &502360995489719830
@@ -243,6 +244,10 @@ MonoBehaviour:
NameHash: -823668238
Synchronize: 1
ParameterType: 1
- name: Die
NameHash: 20298039
Synchronize: 1
ParameterType: 9
AnimatorParametersExpanded: 0
--- !u!114 &-6991373811087161316
MonoBehaviour:

View File

@@ -52,7 +52,7 @@ MonoBehaviour:
GlobalObjectIdHash: 4259369348
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -161,4 +161,10 @@ MonoBehaviour:
targetLayer:
serializedVersion: 2
m_Bits: 2304
beamPrefab: {fileID: 0}
beamColor: {r: 1, g: 0, b: 0, a: 1}
beamStartWidth: 0.1
beamEndWidth: 0.05
beamDuration: 0.15
firePoint: {fileID: 0}
showDebugInfo: 1

View File

@@ -159,3 +159,8 @@ MonoBehaviour:
SourcePrefabToOverride: {fileID: 0}
SourceHashToOverride: 0
OverridingTargetPrefab: {fileID: 0}
- Override: 0
Prefab: {fileID: 3769411674882976201, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
SourcePrefabToOverride: {fileID: 0}
SourceHashToOverride: 0
OverridingTargetPrefab: {fileID: 0}

File diff suppressed because one or more lines are too long

View File

@@ -45,10 +45,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 4268566319
GlobalObjectIdHash: 3538766141
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -0,0 +1,144 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3769411674882976201
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5854748735229546762}
- component: {fileID: 4404305322825062480}
- component: {fileID: 8736618315465008189}
m_Layer: 0
m_Name: Blacksmith
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5854748735229546762
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3769411674882976201}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
m_LocalPosition: {x: 20, y: 0, z: 10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6055409792794235185}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!65 &4404305322825062480
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3769411674882976201}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &8736618315465008189
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3769411674882976201}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 3845453594
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
SceneMigrationSynchronization: 0
SpawnWithObservers: 1
DontDestroyWithOwner: 0
AutoObjectParentSync: 1
SyncOwnerTransformWhenParented: 1
AllowOwnerToParent: 0
--- !u!1001 &6017823276457359066
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5854748735229546762}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalRotation.x
value: 0.00000008146034
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_Name
value: building_blacksmith_blue
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
--- !u!4 &6055409792794235185 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
m_PrefabInstance: {fileID: 6017823276457359066}
m_PrefabAsset: {fileID: 0}

View File

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

View File

@@ -52,7 +52,7 @@ MonoBehaviour:
GlobalObjectIdHash: 615747208
InScenePlacedSourceGlobalObjectIdHash: 615747208
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -953,10 +953,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 415512315
GlobalObjectIdHash: 437508337
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -1073,6 +1073,7 @@ MonoBehaviour:
speedParam: Speed
attackTriggerParam: Attack
isMovingParam: IsMoving
dieTriggerParam: Die
autoLoadFromMonsterData: 1
debugLogging: 0
--- !u!114 &286142144341486567
@@ -1120,6 +1121,10 @@ MonoBehaviour:
NameHash: -823668238
Synchronize: 1
ParameterType: 1
- name: Die
NameHash: 20298039
Synchronize: 1
ParameterType: 9
AnimatorParametersExpanded: 0
--- !u!114 &8403257879686285238
MonoBehaviour:

View File

@@ -48,7 +48,7 @@ MonoBehaviour:
GlobalObjectIdHash: 1920228393
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -49,7 +49,7 @@ MonoBehaviour:
GlobalObjectIdHash: 2651171896
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -72,6 +72,11 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::EnemyPortal
ShowTopMostFoldoutHeaderGroup: 1
portalTeam: 2
maxHealth: 500
damageEffectPrefab: {fileID: 0}
destroyEffectPrefab: {fileID: 0}
effectSpawnPoint: {fileID: 0}
monsterEntries: []
initialCost: 4
costIncreaseRate: 10

View File

@@ -156,7 +156,7 @@ MonoBehaviour:
GlobalObjectIdHash: 1171432577
InScenePlacedSourceGlobalObjectIdHash: 1171432577
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -275,6 +275,9 @@ MonoBehaviour:
showInExploredAreas: 1
updateInterval: 0.2
renderers: []
enableDistantVisibility: 1
heightVisibilityMultiplier: 2
minHeightForDistantVisibility: 3
useExploredMaterial: 0
exploredMaterial: {fileID: 0}
--- !u!1001 &665699090875585891

View File

@@ -1287,10 +1287,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 2991918417
GlobalObjectIdHash: 209349728
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -1421,6 +1421,7 @@ MonoBehaviour:
speedParam: Speed
attackTriggerParam: Attack
isMovingParam: IsMoving
dieTriggerParam: Die
autoLoadFromMonsterData: 1
debugLogging: 0
--- !u!114 &3030624664380987043
@@ -1454,6 +1455,10 @@ MonoBehaviour:
NameHash: -823668238
Synchronize: 1
ParameterType: 1
- name: Die
NameHash: 20298039
Synchronize: 1
ParameterType: 9
AnimatorParametersExpanded: 0
--- !u!114 &4732197089904823630
MonoBehaviour:

View File

@@ -1711,10 +1711,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 1288246448
GlobalObjectIdHash: 209349728
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -1845,6 +1845,7 @@ MonoBehaviour:
speedParam: Speed
attackTriggerParam: Attack
isMovingParam: IsMoving
dieTriggerParam: Die
autoLoadFromMonsterData: 1
debugLogging: 0
--- !u!114 &3608736889699243384
@@ -1878,6 +1879,10 @@ MonoBehaviour:
NameHash: -823668238
Synchronize: 1
ParameterType: 1
- name: Die
NameHash: 20298039
Synchronize: 1
ParameterType: 9
AnimatorParametersExpanded: 0
--- !u!114 &7711485244743381599
MonoBehaviour:

View File

@@ -633,10 +633,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 1314329192
GlobalObjectIdHash: 209349728
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -767,6 +767,7 @@ MonoBehaviour:
speedParam: Speed
attackTriggerParam: Attack
isMovingParam: IsMoving
dieTriggerParam: Die
autoLoadFromMonsterData: 1
debugLogging: 0
--- !u!114 &1220060486488589814
@@ -800,6 +801,10 @@ MonoBehaviour:
NameHash: -823668238
Synchronize: 1
ParameterType: 1
- name: Die
NameHash: 20298039
Synchronize: 1
ParameterType: 9
AnimatorParametersExpanded: 0
--- !u!114 &6824363881054723903
MonoBehaviour:

View File

@@ -1066,10 +1066,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 2094204011
GlobalObjectIdHash: 209349728
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -1200,6 +1200,7 @@ MonoBehaviour:
speedParam: Speed
attackTriggerParam: Attack
isMovingParam: IsMoving
dieTriggerParam: Die
autoLoadFromMonsterData: 1
debugLogging: 0
--- !u!114 &4108093490310817228
@@ -1233,6 +1234,10 @@ MonoBehaviour:
NameHash: -823668238
Synchronize: 1
ParameterType: 1
- name: Die
NameHash: 20298039
Synchronize: 1
ParameterType: 9
AnimatorParametersExpanded: 0
--- !u!114 &4766373245218749495
MonoBehaviour:

View File

@@ -1311,10 +1311,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 2825901034
GlobalObjectIdHash: 209349728
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -1445,6 +1445,7 @@ MonoBehaviour:
speedParam: Speed
attackTriggerParam: Attack
isMovingParam: IsMoving
dieTriggerParam: Die
autoLoadFromMonsterData: 1
debugLogging: 0
--- !u!114 &5730991426544788936
@@ -1478,6 +1479,10 @@ MonoBehaviour:
NameHash: -823668238
Synchronize: 1
ParameterType: 1
- name: Die
NameHash: 20298039
Synchronize: 1
ParameterType: 9
AnimatorParametersExpanded: 0
--- !u!114 &8640017635750122272
MonoBehaviour:

View File

@@ -66,10 +66,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 0
GlobalObjectIdHash: 1663020069
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -66,10 +66,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 0
GlobalObjectIdHash: 1288213121
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -66,10 +66,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 0
GlobalObjectIdHash: 1690593822
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -88,10 +88,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 0
GlobalObjectIdHash: 2346212551
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -88,10 +88,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 0
GlobalObjectIdHash: 4259752030
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -45,10 +45,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 1911485989
GlobalObjectIdHash: 4028579517
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -62,7 +62,7 @@ MonoBehaviour:
GlobalObjectIdHash: 4211758632
InScenePlacedSourceGlobalObjectIdHash: 4211758632
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -89,7 +89,6 @@ MonoBehaviour:
rotationSpeed: 10
initialTeam: 1
maxHealth: 100
showHealthBar: 1
damageEffectPrefab: {fileID: 0}
deathEffectPrefab: {fileID: 0}
--- !u!143 &3007098678582223509
@@ -157,7 +156,7 @@ MonoBehaviour:
interactableLayer:
serializedVersion: 2
m_Bits: 128
workPower: 10
workPower: 1
rayOrigin: {fileID: 0}
useForwardDirection: 1
playAnimations: 1
@@ -301,7 +300,14 @@ MonoBehaviour:
NetworkAnimatorExpanded: 0
AuthorityMode: 0
m_Animator: {fileID: 1698609800605343773}
TransitionStateInfoList: []
TransitionStateInfoList:
- IsCrossFadeExit: 0
Layer: 0
OriginatingState: 646380074
DestinationState: -2089788878
TransitionDuration: 0.25
TriggerNameHash: -323374038
TransitionIndex: 0
AnimatorParameterEntries:
ParameterEntries:
- name: MoveSpeed
@@ -316,10 +322,14 @@ MonoBehaviour:
NameHash: 1080829965
Synchronize: 1
ParameterType: 9
- name: bIsDeath
NameHash: 1265449565
- name: Die
NameHash: 20298039
Synchronize: 1
ParameterType: 4
ParameterType: 9
- name: Revive
NameHash: -323374038
Synchronize: 1
ParameterType: 9
AnimatorParametersExpanded: 0
--- !u!114 &7148704114816793672
MonoBehaviour:

View File

@@ -61,10 +61,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 2078657082
GlobalObjectIdHash: 1180282052
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -47,10 +47,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 2106816000
GlobalObjectIdHash: 1509768584
InScenePlacedSourceGlobalObjectIdHash: 1509768584
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -47,10 +47,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 3899220004
GlobalObjectIdHash: 1908952169
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -81,6 +81,9 @@ MonoBehaviour:
equipmentPrefab: {fileID: 0}
attachOnStart: 0
detachOnEnd: 0
keepEquipped: 0
attachDelay: 0
detachDelay: 0
pickupEffectPrefab: {fileID: 0}
effectSpawnPoint: {fileID: 0}
--- !u!65 &8155484665362647803

View File

@@ -234,7 +234,7 @@ MonoBehaviour:
GlobalObjectIdHash: 4259369348
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -343,4 +343,10 @@ MonoBehaviour:
targetLayer:
serializedVersion: 2
m_Bits: 2304
beamPrefab: {fileID: 0}
beamColor: {r: 1, g: 0, b: 0, a: 1}
beamStartWidth: 0.1
beamEndWidth: 0.05
beamDuration: 0.15
firePoint: {fileID: 0}
showDebugInfo: 1

View File

@@ -53,7 +53,7 @@ MonoBehaviour:
GlobalObjectIdHash: 4259369348
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
@@ -162,6 +162,12 @@ MonoBehaviour:
targetLayer:
serializedVersion: 2
m_Bits: 2304
beamPrefab: {fileID: 0}
beamColor: {r: 1, g: 0, b: 0, a: 1}
beamStartWidth: 0.1
beamEndWidth: 0.05
beamDuration: 0.15
firePoint: {fileID: 0}
showDebugInfo: 1
--- !u!1 &8947776510381915047
GameObject:

View File

@@ -82,7 +82,7 @@ MonoBehaviour:
GlobalObjectIdHash: 106047719
InScenePlacedSourceGlobalObjectIdHash: 106047719
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -75,10 +75,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 4213269672
GlobalObjectIdHash: 1475696401
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
Ownership: 0
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0

View File

@@ -717,7 +717,6 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 61373299}
- {fileID: 1135136907}
- {fileID: 782070683}
- {fileID: 8940572951313384071}
- {fileID: 447015515}
@@ -905,6 +904,7 @@ MonoBehaviour:
startZ: 25
endZ: 725
resourcePrefab: {fileID: 5585059388146411250, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
initialResourcePosition: {x: -30, y: 10}
minResourceCount: 8
maxResourceCount: 12
minDistanceBetweenResources: 80
@@ -1181,68 +1181,6 @@ Transform:
m_Children: []
m_Father: {fileID: 576429380}
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1001 &804683300
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 953248391}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalRotation.x
value: 0.00000008146034
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
propertyPath: m_Name
value: building_blacksmith_blue
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
--- !u!4 &804683301 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: d40509d02a450cd45b817e95de22ef8b, type: 3}
m_PrefabInstance: {fileID: 804683300}
m_PrefabAsset: {fileID: 0}
--- !u!1 &860732960
GameObject:
m_ObjectHideFlags: 0
@@ -1498,60 +1436,11 @@ Transform:
m_Children: []
m_Father: {fileID: 640318137}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &953248390
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 953248391}
- component: {fileID: 953248392}
m_Layer: 0
m_Name: Blacksmith
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &953248391
--- !u!4 &953248391 stripped
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
m_PrefabInstance: {fileID: 2069151068319979200}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 953248390}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
m_LocalPosition: {x: 20, y: 0, z: 10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 804683301}
m_Father: {fileID: 576429380}
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!65 &953248392
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 953248390}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &955933983
GameObject:
m_ObjectHideFlags: 0
@@ -1687,7 +1576,7 @@ MonoBehaviour:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.NetworkConnectionHelper
serverIP: 59.18.227.134
port: 40445
autoStartAsHost: 1
autoStartAsHost: 0
--- !u!4 &1036857644
Transform:
m_ObjectHideFlags: 0
@@ -1885,11 +1774,6 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 11e3760dda2c0164abf759c18d918893, type: 3}
--- !u!4 &1135136907 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
m_PrefabInstance: {fileID: 4875211098963642791}
m_PrefabAsset: {fileID: 0}
--- !u!4 &1138174508 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 228462577495887354, guid: 11e3760dda2c0164abf759c18d918893, type: 3}
@@ -3009,6 +2893,71 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 11e3760dda2c0164abf759c18d918893, type: 3}
--- !u!1001 &2069151068319979200
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 576429380}
m_Modifications:
- target: {fileID: 3769411674882976201, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_Name
value: Blacksmith
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalPosition.x
value: 20
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalPosition.z
value: 10
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalRotation.w
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalRotation.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 180
objectReference: {fileID: 0}
- target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8736618315465008189, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: GlobalObjectIdHash
value: 1738409839
objectReference: {fileID: 0}
- target: {fileID: 8736618315465008189, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
propertyPath: InScenePlacedSourceGlobalObjectIdHash
value: 3845453594
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3}
--- !u!1001 &2069864971232230321
PrefabInstance:
m_ObjectHideFlags: 0
@@ -3405,83 +3354,6 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
--- !u!1001 &4875211098963642791
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 576429380}
m_Modifications:
- target: {fileID: -7869551286978933574, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: rechargeAmount
value: 1
objectReference: {fileID: 0}
- target: {fileID: -7869551286978933574, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: rechargeInterval
value: 2
objectReference: {fileID: 0}
- target: {fileID: -7869551286978933574, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: resourcesPerGathering
value: 5
objectReference: {fileID: 0}
- target: {fileID: -7869551286978933574, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: equipmentData.equipmentPrefab
value:
objectReference: {fileID: 8294708185945415980, guid: eda89876457aa6143b1bef3330e8f7fb, type: 3}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalPosition.x
value: -30
objectReference: {fileID: 0}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalPosition.z
value: 10
objectReference: {fileID: 0}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalRotation.w
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalRotation.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 180
objectReference: {fileID: 0}
- target: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5088182607393517512, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: GlobalObjectIdHash
value: 2106816000
objectReference: {fileID: 0}
- target: {fileID: 5585059388146411250, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
propertyPath: m_Name
value: Mine
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
--- !u!4 &8940572951313384071 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 8064559726283331702, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}

View File

@@ -23,13 +23,14 @@ namespace Northbound
[Tooltip("Z 끝 위치")]
public float endZ = 700f;
private Vector2 _initialResourcePosition;
private Vector2 _corePosition;
private Vector2 _barracksPosition;
[Header("Resource Generation")]
[Tooltip("자원 프리팹")]
public GameObject resourcePrefab;
[Tooltip("기본 자원 위치 (초기 스폰 지점)")]
public Vector2 initialResourcePosition = new Vector2(0f, 5f);
[Tooltip("최소 자원 개수 (초기 자원 제외)")]
[Range(8, 12)]
public int minResourceCount = 8;
@@ -163,21 +164,6 @@ namespace Northbound
_corePosition = Vector2.zero;
}
Resource[] resources = FindObjectsByType<Resource>(FindObjectsSortMode.InstanceID);
if (resources.Length > 0)
{
_initialResourcePosition = new Vector2(resources[0].transform.position.x, resources[0].transform.position.z);
foreach (var resource in resources)
{
resource.InitializeQuality(0f);
}
}
else
{
_initialResourcePosition = Vector2.zero;
}
GameObject barracks = GameObject.Find("Worker Hall");
if (barracks != null)
{
@@ -241,9 +227,19 @@ namespace Northbound
{
resources = null;
int additionalResourceCount = Random.Range(minResourceCount, maxResourceCount + 1);
ResourceData[] tempResources = new ResourceData[additionalResourceCount];
ResourceData[] tempResources = new ResourceData[additionalResourceCount + 1];
for (int i = 0; i < additionalResourceCount; i++)
// Add initial resource at index 0
tempResources[0] = new ResourceData
{
position = initialResourcePosition,
baseProduction = initialResourceProduction,
qualityModifier = 0f,
finalProduction = initialResourceProduction
};
// Generate additional resources starting from index 1
for (int i = 1; i < tempResources.Length; i++)
{
Vector2 position;
float qualityModifier;
@@ -285,6 +281,14 @@ namespace Northbound
private bool TryFindValidResourcePosition(ResourceData[] existingResources, int currentIndex, out Vector2 position)
{
position = Vector2.zero;
// Initial resource uses fixed position
if (currentIndex == 0)
{
position = initialResourcePosition;
return true;
}
int maxAttempts = 100;
for (int attempt = 0; attempt < maxAttempts; attempt++)
@@ -305,7 +309,7 @@ namespace Northbound
private bool IsValidResourcePosition(Vector2 position, ResourceData[] existingResources, int currentIndex)
{
if (Vector2.Distance(position, _initialResourcePosition) < minDistanceBetweenResources)
if (Vector2.Distance(position, initialResourcePosition) < minDistanceBetweenResources)
{
return false;
}
@@ -334,7 +338,7 @@ namespace Northbound
private bool ValidateProductionRate(ResourceData[] additionalResources, out float globalMultiplier)
{
globalMultiplier = 1f;
float totalProduction = initialResourceProduction;
float totalProduction = 0f;
for (int i = 0; i < additionalResources.Length; i++)
{
@@ -365,6 +369,7 @@ namespace Northbound
{
_generatedResources = new ResourceData[]
{
new ResourceData { position = initialResourcePosition, baseProduction = initialResourceProduction, qualityModifier = 0f, finalProduction = initialResourceProduction },
new ResourceData { position = new Vector2(-30, 100), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
new ResourceData { position = new Vector2(30, 200), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
new ResourceData { position = new Vector2(-20, 300), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
@@ -376,7 +381,7 @@ namespace Northbound
new ResourceData { position = new Vector2(15, 250), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction }
};
float totalProduction = initialResourceProduction;
float totalProduction = 0f;
for (int i = 0; i < _generatedResources.Length; i++)
{
totalProduction += _generatedResources[i].finalProduction;
@@ -391,8 +396,6 @@ namespace Northbound
private void SpawnResources()
{
float totalProduction = initialResourceProduction;
for (int i = 0; i < _generatedResources.Length; i++)
{
GameObject resourceObj = Instantiate(resourcePrefab, new Vector3(_generatedResources[i].position.x, 1f, _generatedResources[i].position.y), Quaternion.identity);
@@ -409,17 +412,14 @@ namespace Northbound
NetworkObject networkObj = resourceObj.GetComponent<NetworkObject>();
if (networkObj != null)
{
networkObj.Spawn();
networkObj.SpawnWithOwnership(NetworkManager.ServerClientId);
_spawnedPositions.Add(new Vector3(_generatedResources[i].position.x, 1f, _generatedResources[i].position.y));
}
else
{
Destroy(resourceObj);
}
_spawnedPositions.Add(new Vector3(_generatedResources[i].position.x, 1f, _generatedResources[i].position.y));
totalProduction += _generatedResources[i].finalProduction;
}
}
#endregion
@@ -735,7 +735,7 @@ namespace Northbound
return false;
}
if (Vector2.Distance(new Vector2(position.x, position.z), _initialResourcePosition) < minDistanceFromInitialResource)
if (Vector2.Distance(new Vector2(position.x, position.z), initialResourcePosition) < minDistanceFromInitialResource)
{
return false;
}
@@ -841,9 +841,9 @@ namespace Northbound
public float GetTotalProduction()
{
if (_generatedResources == null)
return initialResourceProduction;
return 0f;
float total = initialResourceProduction;
float total = 0f;
for (int i = 0; i < _generatedResources.Length; i++)
{
total += _generatedResources[i].finalProduction;
@@ -906,7 +906,7 @@ namespace Northbound
if (resourcePrefab != null)
{
Gizmos.color = Color.blue;
Gizmos.DrawWireSphere(new Vector3(_initialResourcePosition.x, 0, _initialResourcePosition.y), 5f);
Gizmos.DrawWireSphere(new Vector3(initialResourcePosition.x, 0, initialResourcePosition.y), 5f);
}
if (creepCampPrefab != null)

View File

@@ -47,6 +47,11 @@ namespace Northbound
_displayAmount = amount;
}
public void UpdateResourceAmountDirectly(int amount)
{
_displayAmount = amount;
}
public bool CanAddResource(int amount)
{
var resourceManager = ServerResourceManager.Instance;

View File

@@ -253,6 +253,7 @@ namespace Northbound
[Rpc(SendTo.Server, InvokePermission = RpcInvokePermission.Everyone)]
private void AssignOrGatherResourceServerRpc(ulong playerId, ulong resourceId)
{
if (!IsServer) return;
bool workerAssigned = false;
@@ -286,6 +287,14 @@ namespace Northbound
private void GatherResource(ulong playerId)
{
Debug.Log($"[Resource] GatherResource called - IsServer: {IsServer}, OwnerClientId: {OwnerClientId}, Current: {_currentResources.Value}");
if (!IsServer)
{
Debug.LogError($"[Resource] GatherResource called on CLIENT! This should not happen!");
return;
}
if (!CanInteract(playerId))
return;
@@ -315,18 +324,15 @@ namespace Northbound
ShowGatheringEffectClientRpc();
}
[Rpc(SendTo.ClientsAndHost)]
[Rpc(SendTo.Owner)]
private void UpdatePlayerResourcesClientRpc(ulong playerId)
{
var playerObject = NetworkManager.Singleton.ConnectedClients[playerId].PlayerObject;
if (playerObject != null)
{
var playerInventory = playerObject.GetComponent<PlayerResourceInventory>();
if (playerInventory != null)
{
playerInventory.RequestResourceUpdateServerRpc();
}
}
var playerObject = NetworkManager.Singleton.ConnectedClients[playerId]?.PlayerObject;
if (playerObject == null)
return;
var playerInventory = playerObject.GetComponent<PlayerResourceInventory>();
playerInventory?.RequestResourceUpdateServerRpc();
}
[Rpc(SendTo.NotServer)]

View File

@@ -88,18 +88,15 @@ namespace Northbound
Invoke(nameof(DestroyPickup), 0.1f);
}
[Rpc(SendTo.ClientsAndHost)]
[Rpc(SendTo.Owner)]
private void UpdatePlayerResourcesClientRpc(ulong playerId)
{
var playerObject = NetworkManager.Singleton.ConnectedClients[playerId].PlayerObject;
if (playerObject != null)
{
var playerInventory = playerObject.GetComponent<PlayerResourceInventory>();
if (playerInventory != null)
{
playerInventory.RequestResourceUpdateServerRpc();
}
}
var playerObject = NetworkManager.Singleton.ConnectedClients[playerId]?.PlayerObject;
if (playerObject == null)
return;
var playerInventory = playerObject.GetComponent<PlayerResourceInventory>();
playerInventory?.RequestResourceUpdateServerRpc();
}
[Rpc(SendTo.ClientsAndHost)]

View File

@@ -58,8 +58,8 @@
<Compile Include="Library\PackageCache\com.unity.render-pipelines.universal@1e87cf1dccb8\Runtime\RTHandleUtils.cs" />
<Compile Include="Assets\FlatKit\[Render Pipeline] URP\EditorAttributes\Core\ValidatorAttributes\ValidateInputAttribute.cs" />
<Compile Include="Library\PackageCache\com.unity.render-pipelines.universal@1e87cf1dccb8\Runtime\Decal\ScreenSpace\DecalScreenSpaceRenderPass.cs" />
<Compile Include="Library\PackageCache\com.unity.render-pipelines.universal@1e87cf1dccb8\Runtime\VolumeRequiresRendererFeatures.cs" />
<Compile Include="Assets\FlatKit\[Render Pipeline] URP\RenderFeatures\Fog\FogSettings.cs" />
<Compile Include="Library\PackageCache\com.unity.render-pipelines.universal@1e87cf1dccb8\Runtime\VolumeRequiresRendererFeatures.cs" />
<Compile Include="Library\PackageCache\com.unity.render-pipelines.universal@1e87cf1dccb8\Runtime\UniversalCameraHistory.cs" />
<Compile Include="Library\PackageCache\com.unity.render-pipelines.universal@1e87cf1dccb8\Runtime\ForwardLights.cs" />
<Compile Include="Library\PackageCache\com.unity.render-pipelines.universal@1e87cf1dccb8\Runtime\FrameData\UniversalCameraData.cs" />