Пример #1
0
        public void OnStreamEvent(SyncedData <TModel> stream, StreamEvent streamEvent)
        {
            if (streamEvent == StreamEvent.Added)
            {
                var obj = Import(stream);

                if (m_MemTracker.ContainsKey(m_ObjectHandle, stream.key))
                {
                    Debug.Log("Duplicate " + obj.name);
                }

                m_MemTracker.Set(m_ObjectHandle, stream.key, obj);

                m_Output.SendStreamAdded(new SyncedData <TObject>(stream.key, obj));
            }
            else if (streamEvent == StreamEvent.Changed)
            {
                if (m_MemTracker.TryGetValue(m_ObjectHandle, stream.key, out var obj))
                {
                    ReImport(stream, obj);
                }
                else
                {
                    // We may receive "Changed" for items that were
                    // loaded at some point, but are not in the cache anymore
                    obj = Import(stream);
                    m_MemTracker.Set(m_ObjectHandle, stream.key, obj);
                }

                m_Output.SendStreamChanged(new SyncedData <TObject>(stream.key, obj));
            }
        }