public void PushUpdateTransform(NetworkBehaviour source, object update, byte code) { byte type = update is Vector3 ? NetworkData.Vector3Type : NetworkData.QuaternionType; lock (Out) { WriteHeader(NetworkData.UpdateTransform); Out.WriteLong(source.NetworkId); Out.WriteByte(type); if (type == NetworkData.Vector3Type) { Out.WriteVector3((Vector3)update); } else if (type == NetworkData.QuaternionType) { Out.WriteQuaternion((Quaternion)update); } if (code > 0) { Out.WriteByte(code); } ByteBuffer copy = Out.Copy(); if (type == NetworkData.Vector3Type) { if (code == 1) { PushUpdate(PositionUpdates, source, copy); } else if (code == 2) { PushUpdate(ScaleUpdates, source, copy); } } else if (type == NetworkData.QuaternionType) { PushUpdate(RotationUpdates, source, copy); } Out.Reset(); Out.Clear(); } }