Skip to content

Commit 57797b7

Browse files
fix: fixedstring byte writing and comparing up port (#3009)
* fix Fixing no byte serializer issue with FixedString serialization. * update Removing the `GenerateSerializationForType` attribute from previous fix. * update Updating change log.
1 parent 133c125 commit 57797b7

File tree

4 files changed

+3
-12
lines changed

4 files changed

+3
-12
lines changed

com.unity.netcode.gameobjects/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Additional documentation and release notes are available at [Multiplayer Documen
1414

1515
### Fixed
1616

17+
- Fixed issue where `FixedStringSerializer<T>` was using `NetworkVariableSerialization<byte>.AreEqual` to determine if two bytes were equal causes an exception to be thrown due to no byte serializer having been defined. (#3009)
1718
- Fixed issue using collections within `NetworkVariable` where the collection would not detect changes to items or nested items. (#3004)
1819
- Fixed issue where `List`, `Dictionary`, and `HashSet` collections would not uniquely duplicate nested collections. (#3004)
1920
- Fixed issue where `NotAuthorityTarget` would include the service observer in the list of targets to send the RPC to as opposed to excluding the service observer as it should. (#3000)

com.unity.netcode.gameobjects/Runtime/NetworkVariable/AnticipatedNetworkVariable.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ public enum StaleDataHandling
5151
#pragma warning restore IDE0001
5252
[Serializable]
5353
[GenerateSerializationForGenericParameter(0)]
54-
[GenerateSerializationForType(typeof(byte))]
5554
public class AnticipatedNetworkVariable<T> : NetworkVariableBase
5655
{
5756
[SerializeField]

com.unity.netcode.gameobjects/Runtime/NetworkVariable/NetworkVariable.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ namespace Unity.Netcode
99
/// <typeparam name="T">the unmanaged type for <see cref="NetworkVariable{T}"/> </typeparam>
1010
[Serializable]
1111
[GenerateSerializationForGenericParameter(0)]
12-
[GenerateSerializationForType(typeof(byte))]
1312
public class NetworkVariable<T> : NetworkVariableBase
1413
{
1514
/// <summary>

com.unity.netcode.gameobjects/Runtime/NetworkVariable/Serialization/TypedSerializerImplementations.cs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,7 @@ public unsafe void WriteDelta(FastBufferWriter writer, ref T value, ref T previo
935935
{
936936
var val = value[i];
937937
var prevVal = previousValue[i];
938-
if (!NetworkVariableSerialization<byte>.AreEqual(ref val, ref prevVal))
938+
if (val != prevVal)
939939
{
940940
++numChanges;
941941
changes.Set(i);
@@ -960,19 +960,11 @@ public unsafe void WriteDelta(FastBufferWriter writer, ref T value, ref T previo
960960
BytePacker.WriteValuePacked(writer, value.Length);
961961
writer.WriteValueSafe(changes);
962962
var ptr = value.GetUnsafePtr();
963-
var prevPtr = previousValue.GetUnsafePtr();
964963
for (var i = 0; i < value.Length; ++i)
965964
{
966965
if (changes.IsSet(i))
967966
{
968-
if (i < previousValue.Length)
969-
{
970-
NetworkVariableSerialization<byte>.WriteDelta(writer, ref ptr[i], ref prevPtr[i]);
971-
}
972-
else
973-
{
974-
NetworkVariableSerialization<byte>.Write(writer, ref ptr[i]);
975-
}
967+
writer.WriteByteSafe(ptr[i]);
976968
}
977969
}
978970
}

0 commit comments

Comments
 (0)