build: WebGL last_build 20260518 + fix NetworkManager MapSchema iteration

- New WebGL build (data +6MB, wasm +92KB) with all bug fixes
- Fix MapSchema foreach: iterate via .Keys with explicit casts
- Fix sbyte->int cast for playersAlive Listen callback
- Updated Tutorial.unity scene

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-18 08:58:37 +02:00
parent a4792759e6
commit ec05fb8ddd
6 changed files with 433 additions and 5 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -499,6 +499,229 @@ MeshCollider:
m_Convex: 0 m_Convex: 0
m_CookingOptions: 30 m_CookingOptions: 30
m_Mesh: {fileID: 4300000, guid: 025b31f353b4e4e42b89c454f606e8ff, type: 2} m_Mesh: {fileID: 4300000, guid: 025b31f353b4e4e42b89c454f606e8ff, type: 2}
--- !u!1001 &56037497
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6304159103002400667, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_Name
value: OWTC (2)
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalPosition.x
value: 19.5
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalPosition.y
value: 128.53854
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalPosition.z
value: -8.9
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7881844408438901364, guid: 3939749e632504441aeb366d2649f31a, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 7745453792590522474, guid: 3939749e632504441aeb366d2649f31a, type: 3}
insertIndex: -1
addedObject: {fileID: 56037509}
- targetCorrespondingSourceObject: {fileID: 2515127658486749459, guid: 3939749e632504441aeb366d2649f31a, type: 3}
insertIndex: -1
addedObject: {fileID: 56037508}
- targetCorrespondingSourceObject: {fileID: 9182793024917907700, guid: 3939749e632504441aeb366d2649f31a, type: 3}
insertIndex: -1
addedObject: {fileID: 56037507}
- targetCorrespondingSourceObject: {fileID: 9084213989228939536, guid: 3939749e632504441aeb366d2649f31a, type: 3}
insertIndex: -1
addedObject: {fileID: 56037506}
- targetCorrespondingSourceObject: {fileID: 705767088734067006, guid: 3939749e632504441aeb366d2649f31a, type: 3}
insertIndex: -1
addedObject: {fileID: 56037505}
- targetCorrespondingSourceObject: {fileID: 6707964241503337122, guid: 3939749e632504441aeb366d2649f31a, type: 3}
insertIndex: -1
addedObject: {fileID: 1329594815}
- targetCorrespondingSourceObject: {fileID: 7659122436085906605, guid: 3939749e632504441aeb366d2649f31a, type: 3}
insertIndex: -1
addedObject: {fileID: 1957630859}
m_SourcePrefab: {fileID: 100100000, guid: 3939749e632504441aeb366d2649f31a, type: 3}
--- !u!1 &56037498 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 7659122436085906605, guid: 3939749e632504441aeb366d2649f31a, type: 3}
m_PrefabInstance: {fileID: 56037497}
m_PrefabAsset: {fileID: 0}
--- !u!1 &56037499 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 6707964241503337122, guid: 3939749e632504441aeb366d2649f31a, type: 3}
m_PrefabInstance: {fileID: 56037497}
m_PrefabAsset: {fileID: 0}
--- !u!1 &56037500 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 705767088734067006, guid: 3939749e632504441aeb366d2649f31a, type: 3}
m_PrefabInstance: {fileID: 56037497}
m_PrefabAsset: {fileID: 0}
--- !u!1 &56037501 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 9084213989228939536, guid: 3939749e632504441aeb366d2649f31a, type: 3}
m_PrefabInstance: {fileID: 56037497}
m_PrefabAsset: {fileID: 0}
--- !u!1 &56037502 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 9182793024917907700, guid: 3939749e632504441aeb366d2649f31a, type: 3}
m_PrefabInstance: {fileID: 56037497}
m_PrefabAsset: {fileID: 0}
--- !u!1 &56037503 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 2515127658486749459, guid: 3939749e632504441aeb366d2649f31a, type: 3}
m_PrefabInstance: {fileID: 56037497}
m_PrefabAsset: {fileID: 0}
--- !u!1 &56037504 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 7745453792590522474, guid: 3939749e632504441aeb366d2649f31a, type: 3}
m_PrefabInstance: {fileID: 56037497}
m_PrefabAsset: {fileID: 0}
--- !u!64 &56037505
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 56037500}
m_Material: {fileID: 13400000, guid: efa30f5e48c586d40a08f8dba94f93c4, type: 2}
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: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 4300000, guid: 28dd0a6a59009bc46a33b1556771bdf8, type: 2}
--- !u!64 &56037506
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 56037501}
m_Material: {fileID: 13400000, guid: efa30f5e48c586d40a08f8dba94f93c4, type: 2}
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: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 4300000, guid: 1b99a3843be798a49ad3670f2a195bd6, type: 2}
--- !u!64 &56037507
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 56037502}
m_Material: {fileID: 13400000, guid: efa30f5e48c586d40a08f8dba94f93c4, type: 2}
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: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 4300000, guid: 8216de21ebc31dc409ee761423d1fcfe, type: 2}
--- !u!64 &56037508
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 56037503}
m_Material: {fileID: 13400000, guid: efa30f5e48c586d40a08f8dba94f93c4, type: 2}
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: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 4300000, guid: 4aa285cacf0b5d047b28b6939943f7f2, type: 2}
--- !u!64 &56037509
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 56037504}
m_Material: {fileID: 13400000, guid: efa30f5e48c586d40a08f8dba94f93c4, type: 2}
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: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 4300000, guid: e2f5811066ce8384f9091bf0a701174e, type: 2}
--- !u!43 &64644695 --- !u!43 &64644695
Mesh: Mesh:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -12137,6 +12360,28 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0}
--- !u!64 &1329594815
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 56037499}
m_Material: {fileID: 13400000, guid: efa30f5e48c586d40a08f8dba94f93c4, type: 2}
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: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 4300000, guid: 384f33ac50ce5d2479b58ee6943f177b, type: 2}
--- !u!1 &1375523647 stripped --- !u!1 &1375523647 stripped
GameObject: GameObject:
m_CorrespondingSourceObject: {fileID: 4929131550196106466, guid: 289a3d1a261dcd84ebab91cd520614e8, type: 3} m_CorrespondingSourceObject: {fileID: 4929131550196106466, guid: 289a3d1a261dcd84ebab91cd520614e8, type: 3}
@@ -12724,6 +12969,107 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1407277227
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 682436454865862511, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_Name
value: OWTC (1)
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalScale.x
value: 5.5043
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalScale.y
value: 5.5043
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalScale.z
value: 5.5043
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalPosition.x
value: 12.12
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalPosition.y
value: -0.10128999
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalPosition.z
value: 133.05
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalRotation.w
value: 0.94181585
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalRotation.y
value: -0.33612934
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -39.282
objectReference: {fileID: 0}
- target: {fileID: 2190890417254661732, guid: ad50ea770b413ae46910e145df64e148, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects:
- {fileID: 5215812754664999730, guid: ad50ea770b413ae46910e145df64e148, type: 3}
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 5436474509261457349, guid: ad50ea770b413ae46910e145df64e148, type: 3}
insertIndex: -1
addedObject: {fileID: 1407277229}
m_SourcePrefab: {fileID: 100100000, guid: ad50ea770b413ae46910e145df64e148, type: 3}
--- !u!1 &1407277228 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 5436474509261457349, guid: ad50ea770b413ae46910e145df64e148, type: 3}
m_PrefabInstance: {fileID: 1407277227}
m_PrefabAsset: {fileID: 0}
--- !u!136 &1407277229
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1407277228}
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: 2
m_Radius: 0.5
m_Height: 1.09
m_Direction: 1
m_Center: {x: 0, y: 0, z: -0.44}
--- !u!1 &1415280441 --- !u!1 &1415280441
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -18258,6 +18604,28 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!64 &1957630859
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 56037498}
m_Material: {fileID: 13400000, guid: efa30f5e48c586d40a08f8dba94f93c4, type: 2}
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: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 4300000, guid: cf8c71a783ecefa438419027de620f56, type: 2}
--- !u!1 &1959189488 --- !u!1 &1959189488
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -19332,6 +19700,63 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1984811904
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalPosition.x
value: -39
objectReference: {fileID: 0}
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalPosition.y
value: 20.9
objectReference: {fileID: 0}
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalPosition.z
value: -81.9
objectReference: {fileID: 0}
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7870628
objectReference: {fileID: 0}
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalRotation.y
value: -0.6168729
objectReference: {fileID: 0}
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -76.176
objectReference: {fileID: 0}
- target: {fileID: 2954604498796265804, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3577999184530567294, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
propertyPath: m_Name
value: OWTC
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7244e33eeb8c0b5448a1585eed27b25e, type: 3}
--- !u!1 &1988458561 stripped --- !u!1 &1988458561 stripped
GameObject: GameObject:
m_CorrespondingSourceObject: {fileID: 7750813230510895229, guid: 289a3d1a261dcd84ebab91cd520614e8, type: 3} m_CorrespondingSourceObject: {fileID: 7750813230510895229, guid: 289a3d1a261dcd84ebab91cd520614e8, type: 3}
@@ -20128,3 +20553,6 @@ SceneRoots:
- {fileID: 1004978466} - {fileID: 1004978466}
- {fileID: 1761335052} - {fileID: 1761335052}
- {fileID: 1430471605} - {fileID: 1430471605}
- {fileID: 1984811904}
- {fileID: 1407277227}
- {fileID: 56037497}

View File

@@ -154,7 +154,7 @@ public class NetworkManager : MonoBehaviour
_callbacks.OnRemove(state => state.players, (key, player) => OnPlayerRemove(key, player)); _callbacks.OnRemove(state => state.players, (key, player) => OnPlayerRemove(key, player));
_callbacks.Listen(state => state.phase, (v, _) => _OnPhaseChanged(v)); _callbacks.Listen(state => state.phase, (v, _) => _OnPhaseChanged(v));
_callbacks.Listen(state => state.countdown, (v, _) => OnCountdownChanged?.Invoke(v)); _callbacks.Listen(state => state.countdown, (v, _) => OnCountdownChanged?.Invoke(v));
_callbacks.Listen(state => state.playersAlive, (v, _) => GameHUD.Instance?.SetPlayersAlive(v)); _callbacks.Listen(state => state.playersAlive, (newVal, oldVal) => { if (GameHUD.Instance != null) GameHUD.Instance.SetPlayersAlive((int)newVal); });
_room.OnMessage<EliminatedMsg>("eliminated", msg => { OnEliminated?.Invoke(msg.sessionId, msg.reason); }); _room.OnMessage<EliminatedMsg>("eliminated", msg => { OnEliminated?.Invoke(msg.sessionId, msg.reason); });
_room.OnMessage<QualifiedMsg> ("qualified", msg => { OnQualified?.Invoke(msg.sessionId); }); _room.OnMessage<QualifiedMsg> ("qualified", msg => { OnQualified?.Invoke(msg.sessionId); });
@@ -167,8 +167,8 @@ public class NetworkManager : MonoBehaviour
// Seed players already present in the room (state decoded before callbacks were registered) // Seed players already present in the room (state decoded before callbacks were registered)
if (_room.State.players != null) if (_room.State.players != null)
{ {
foreach (var kvp in _room.State.players) foreach (var key in _room.State.players.Keys)
OnPlayerAdd(kvp.Key, kvp.Value); OnPlayerAdd((string)key, (NetworkPlayer)_room.State.players[key]);
} }
OnConnected?.Invoke(); OnConnected?.Invoke();