Optimize network transform replication

This commit is contained in:
Wojtek Figat
2024-10-15 11:24:10 +02:00
parent c202a639cf
commit ac832a0e81
3 changed files with 33 additions and 5 deletions

View File

@@ -157,6 +157,7 @@ void NetworkTransform::Serialize(NetworkStream* stream)
// Encode data
Data data;
Platform::MemoryClear(&data, sizeof(data));
data.LocalSpace = LocalSpace;
data.HasSequenceIndex = Mode == ReplicationModes::Prediction;
data.Components = Components;
@@ -195,8 +196,7 @@ void NetworkTransform::Serialize(NetworkStream* stream)
}
if (EnumHasAllFlags(data.Components, ReplicationComponents::Rotation))
{
const Float3 rotation = transform.Orientation.GetEuler();
stream->Write(rotation);
stream->Write(transform.Orientation);
}
else if (EnumHasAnyFlags(data.Components, ReplicationComponents::Rotation))
{
@@ -260,9 +260,7 @@ void NetworkTransform::Deserialize(NetworkStream* stream)
}
if (EnumHasAllFlags(data.Components, ReplicationComponents::Rotation))
{
Float3 rotation;
stream->Read(rotation);
transform.Orientation = Quaternion::Euler(rotation);
stream->Read(transform.Orientation);
}
else if (EnumHasAnyFlags(data.Components, ReplicationComponents::Rotation))
{