/// <summary>
        ///     Writes new serialized object in to memory.
        /// </summary>
        public static void WriteSerializedObjectToMemory(QNetWorldSerializerObject obj)
        {
            if (QNetManager.IsHostActive) // if host is active, we will ignore this one
            {
                return;
            }

            if (WorldIsSerialized)
            {
                Instance.StartCoroutine(InternalFromSerializedObject(obj, () => { }));
            }
            else
            {
                InternalSerializedObjectsInMemory.Add(obj);
            }
        }
        /// <summary>
        ///     Removes serialized object from memory.
        /// </summary>
        public static void RemoveSerializedObjectFromMemory(short objectIdentity)
        {
            if (QNetManager.IsHostActive) // if host is active, we will ignore this one
            {
                return;
            }

            if (WorldIsSerialized)
            {
                var qNetObject = QNetObjectBehaviour.GetSpawnedObject(objectIdentity) ??
                                 QNetObjectBehaviour.GetPredefinedObject(objectIdentity);
                if (qNetObject == null)
                {
                    JEMLogger.LogError(
                        $"System was trying to destroy de-serialized object but target of identity {objectIdentity} not exists in current world.");
                }
                else
                {
                    InternalDestroySerializedObject(qNetObject);
                }
            }
            else
            {
                var serializedObject = default(QNetWorldSerializerObject);
                for (var index = 0; index < InternalSerializedObjectsInMemory.Count; index++)
                {
                    if (InternalSerializedObjectsInMemory[index].Object.ObjectIdentity == objectIdentity)
                    {
                        serializedObject = InternalSerializedObjectsInMemory[index];
                        break;
                    }
                }

                if (serializedObject.Equals(default(QNetWorldSerializerObject)))
                {
                    JEMLogger.LogWarning(
                        $"System was trying to remove object from world serializer memory but target of identity {objectIdentity} not exist.");
                }
                else
                {
                    InternalSerializedObjectsInMemory.Remove(serializedObject);
                }
            }
        }
 /// <summary>
 ///     Clear memory of serialized objects.
 /// </summary>
 public static void ClearSerializedObjectsFromMemory()
 {
     InternalSerializedObjectsInMemory.Clear();
 }