public Entity Unregister(int entityId) { var entity = replicatedData[entityId].Entity; if (entity == Entity.Null) { return(Entity.Null); } GameDebug.Assert(entity != Entity.Null, "Unregister. ReplicatedData has has entity set"); if (showInfo.IntValue > 0) { if (entityManager.HasComponent <Transform>(entity)) { GameDebug.Log("RepEntity UNREGISTER NetID:" + entityId + " Entity:" + entity + " GameObject:" + entityManager.GetComponentObject <Transform>(entity).name); } else { GameDebug.Log("RepEntity UNREGISTER NetID:" + entityId + " Entity:" + entity); } } replicatedData[entityId] = new ReplicatedData(); return(entity); }
public void Register(int entityId, Entity entity, INetworkSerializable[] serializableArray) { // Grow to make sure there is room for entity if (entityId >= m_replicatedData.Count) { var count = entityId - m_replicatedData.Count + 1; var emptyData = new ReplicatedData(); for (var i = 0; i < count; i++) { m_replicatedData.Add(emptyData); } } GameDebug.Assert(m_replicatedData[entityId].entity == Entity.Null, "ReplicatedData has entity set:{0}", m_replicatedData[entityId].entity); // Sort serializables by type name so server and client agree on order networkSerializables.Clear(); networkSerializables.AddRange(serializableArray); networkSerializables.Sort((p1, p2) => p1.GetType().Name.CompareTo(p2.GetType().Name)); var data = new ReplicatedData { entity = entity, serializableArray = networkSerializables.ToArray() }; m_replicatedData[entityId] = data; }
public Entity Unregister(int entityId) { var entity = m_replicatedData[entityId].entity; GameDebug.Assert(entity != Entity.Null, "Unregister. ReplicatedData has has entity set"); m_replicatedData[entityId] = new ReplicatedData(); return(entity); }
public void Register(EntityManager entityManager, int entityId, Entity entity) { if (m_showInfo.IntValue > 0) { if (entityManager.HasComponent <Transform>(entity)) { GameDebug.Log("RepEntity REGISTER NetID:" + entityId + " Entity:" + entity + " GameObject:" + entityManager.GetComponentObject <Transform>(entity).name); } else { GameDebug.Log("RepEntity REGISTER NetID:" + entityId + " Entity:" + entity); } } // Grow to make sure there is room for entity if (entityId >= m_replicatedData.Count) { var count = entityId - m_replicatedData.Count + 1; var emptyData = new ReplicatedData(); for (var i = 0; i < count; i++) { m_replicatedData.Add(emptyData); } } GameDebug.Assert(m_replicatedData[entityId].entity == Entity.Null, "ReplicatedData has entity set:{0}", m_replicatedData[entityId].entity); netSerializables.Clear(); netPredicted.Clear(); netInterpolated.Clear(); var go = entityManager.HasComponent <Transform>(entity) ? entityManager.GetComponentObject <Transform>(entity).gameObject : null; FindSerializers(entityManager, entity); if (entityManager.HasComponent <EntityGroupChildren>(entity)) { var buffer = entityManager.GetBuffer <EntityGroupChildren>(entity); for (int i = 0; i < buffer.Length; i++) { var childEntity = buffer[i].entity; if (m_showInfo.IntValue > 0) { GameDebug.Log(" ReplicatedEntityChildren: " + i + " = " + childEntity); } FindSerializers(entityManager, childEntity); } } var data = new ReplicatedData { entity = entity, gameObject = go, serializableArray = netSerializables.ToArray(), predictedArray = netPredicted.ToArray(), interpolatedArray = netInterpolated.ToArray(), }; m_replicatedData[entityId] = data; }