Skip to content

Commit 5bddba5

Browse files
committed
fix: Added exceptions when trying to serialize unspawned objects
1 parent a07aa61 commit 5bddba5

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

MLAPI/Serialization/BitWriter.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,10 @@ public void WriteObjectPacked(object value)
189189
{
190190
throw new ArgumentException("BitWriter cannot write GameObject types that does not has a NetworkedObject component attached. GameObject: " + ((GameObject)value).name);
191191
}
192+
else if (!networkedObject.IsSpawned)
193+
{
194+
throw new ArgumentException("BitWriter cannot write NetworkedObject types that are not spawned. GameObject: " + ((GameObject)value).name);
195+
}
192196
else
193197
{
194198
WriteUInt64Packed(networkedObject.NetworkId);
@@ -197,11 +201,21 @@ public void WriteObjectPacked(object value)
197201
}
198202
else if (value is NetworkedObject)
199203
{
204+
if (!((NetworkedObject)value).IsSpawned)
205+
{
206+
throw new ArgumentException("BitWriter cannot write NetworkedObject types that are not spawned. GameObject: " + ((GameObject)value).name);
207+
}
208+
200209
WriteUInt64Packed(((NetworkedObject)value).NetworkId);
201210
return;
202211
}
203212
else if (value is NetworkedBehaviour)
204213
{
214+
if (!((NetworkedBehaviour)value).HasNetworkedObject || !((NetworkedBehaviour)value).NetworkedObject.IsSpawned)
215+
{
216+
throw new ArgumentException("BitWriter cannot write NetworkedBehaviour types that are not spawned. GameObject: " + ((GameObject)value).name);
217+
}
218+
205219
WriteUInt64Packed(((NetworkedBehaviour)value).NetworkId);
206220
WriteUInt16Packed(((NetworkedBehaviour)value).GetBehaviourId());
207221
return;

0 commit comments

Comments
 (0)