Skip to content

Commit 5508682

Browse files
Merge branch 'develop-2.0.0' into chore/optimize-destroy-object-message
2 parents f03efba + 46c84f9 commit 5508682

File tree

2 files changed

+14
-54
lines changed

2 files changed

+14
-54
lines changed

com.unity.netcode.gameobjects/CHANGELOG.md

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

2121
- Improve performance of `DestroyObjectMessage`. (#3801)
22+
- Improve performance of `CreateObjectMessage`. (#3800)
2223
- First pass of CoreCLR engine API changes. (#3799)
2324
- Changed when a server is disconnecting a client with a reason it now defers the complete transport disconnect sequence until the end of the frame after the server's transport has sent all pending outbound messages. (#3786)
2425
- Improve performance of `NetworkTransformState`. (#3770)

com.unity.netcode.gameobjects/Runtime/Messaging/Messages/CreateObjectMessage.cs

Lines changed: 13 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -32,62 +32,17 @@ internal struct CreateObjectMessage : INetworkMessage
3232
private const byte k_UpdateObservers = 0x02;
3333
private const byte k_UpdateNewObservers = 0x04;
3434

35-
36-
private byte m_CreateObjectMessageTypeFlags;
37-
38-
internal bool IncludesSerializedObject
39-
{
40-
get
41-
{
42-
return GetFlag(k_IncludesSerializedObject);
43-
}
44-
45-
set
46-
{
47-
SetFlag(value, k_IncludesSerializedObject);
48-
}
49-
}
50-
51-
internal bool UpdateObservers
52-
{
53-
get
54-
{
55-
return GetFlag(k_UpdateObservers);
56-
}
57-
58-
set
59-
{
60-
SetFlag(value, k_UpdateObservers);
61-
}
62-
}
63-
64-
internal bool UpdateNewObservers
65-
{
66-
get
67-
{
68-
return GetFlag(k_UpdateNewObservers);
69-
}
70-
71-
set
72-
{
73-
SetFlag(value, k_UpdateNewObservers);
74-
}
75-
}
76-
77-
private bool GetFlag(int flag)
78-
{
79-
return (m_CreateObjectMessageTypeFlags & flag) != 0;
80-
}
81-
82-
private void SetFlag(bool set, byte flag)
83-
{
84-
if (set) { m_CreateObjectMessageTypeFlags = (byte)(m_CreateObjectMessageTypeFlags | flag); }
85-
else { m_CreateObjectMessageTypeFlags = (byte)(m_CreateObjectMessageTypeFlags & ~flag); }
86-
}
35+
internal bool IncludesSerializedObject;
36+
internal bool UpdateObservers;
37+
internal bool UpdateNewObservers;
8738

8839
public void Serialize(FastBufferWriter writer, int targetVersion)
8940
{
90-
writer.WriteValueSafe(m_CreateObjectMessageTypeFlags);
41+
byte bitset = 0x00;
42+
if (IncludesSerializedObject) { bitset |= k_IncludesSerializedObject; }
43+
if (UpdateObservers) { bitset |= k_UpdateObservers; }
44+
if (UpdateNewObservers) { bitset |= k_UpdateNewObservers; }
45+
writer.WriteByteSafe(bitset);
9146

9247
if (UpdateObservers)
9348
{
@@ -125,7 +80,11 @@ public bool Deserialize(FastBufferReader reader, ref NetworkContext context, int
12580
return false;
12681
}
12782

128-
reader.ReadValueSafe(out m_CreateObjectMessageTypeFlags);
83+
reader.ReadByteSafe(out byte bitset);
84+
IncludesSerializedObject = (bitset & k_IncludesSerializedObject) != 0;
85+
UpdateObservers = (bitset & k_UpdateObservers) != 0;
86+
UpdateNewObservers = (bitset & k_UpdateNewObservers) != 0;
87+
12988
if (UpdateObservers)
13089
{
13190
var length = 0;

0 commit comments

Comments
 (0)