diff --git a/com.unity.netcode.gameobjects/Runtime/Configuration/SessionConfig.cs b/com.unity.netcode.gameobjects/Runtime/Configuration/SessionConfig.cs index 671ae74811..9a4ed0a931 100644 --- a/com.unity.netcode.gameobjects/Runtime/Configuration/SessionConfig.cs +++ b/com.unity.netcode.gameobjects/Runtime/Configuration/SessionConfig.cs @@ -8,9 +8,10 @@ internal class SessionConfig public const uint NoFeatureCompatibility = 0; public const uint BypassFeatureCompatible = 1; public const uint ServerDistributionCompatible = 2; + public const uint SessionStateToken = 3; // The most current session version (!!!!set this when you increment!!!!!) - public static uint PackageSessionVersion => ServerDistributionCompatible; + public static uint PackageSessionVersion => SessionStateToken; internal uint SessionVersion; diff --git a/com.unity.netcode.gameobjects/Runtime/Messaging/Messages/ConnectionApprovedMessage.cs b/com.unity.netcode.gameobjects/Runtime/Messaging/Messages/ConnectionApprovedMessage.cs index cb1de9356f..ab46a4465f 100644 --- a/com.unity.netcode.gameobjects/Runtime/Messaging/Messages/ConnectionApprovedMessage.cs +++ b/com.unity.netcode.gameobjects/Runtime/Messaging/Messages/ConnectionApprovedMessage.cs @@ -9,6 +9,7 @@ internal struct ServiceConfig : INetworkSerializable public bool IsRestoredSession; public ulong CurrentSessionOwner; public bool ServerRedistribution; + public ulong SessionStateToken; public void NetworkSerialize(BufferSerializer serializer) where T : IReaderWriter { @@ -22,6 +23,11 @@ public void NetworkSerialize(BufferSerializer serializer) where T : IReade { serializer.SerializeValue(ref ServerRedistribution); } + + if (SessionVersion >= SessionConfig.SessionStateToken) + { + serializer.SerializeValue(ref SessionStateToken); + } } else { @@ -37,6 +43,15 @@ public void NetworkSerialize(BufferSerializer serializer) where T : IReade { ServerRedistribution = false; } + + if (SessionVersion >= SessionConfig.SessionStateToken) + { + serializer.SerializeValue(ref SessionStateToken); + } + else + { + SessionStateToken = 0; + } } } }