private void HandleChanges(Changes changes) { foreach (var created in changes.CreatedEntities()) { var entity = m_WorldManager.GetEntityFromGuid(created); if (EntityManager.Exists(entity) && EntityManager.HasComponent <EntityName>(entity)) { m_EntityGuidToName[created] = EntityManager.GetBufferAsString <EntityName>(entity); } } foreach (var changed in changes.ChangedEntitiesWithAddComponent <EntityName>() .Concat(changes.ChangedEntitiesWithSetComponent <EntityName>())) { var entity = m_WorldManager.GetEntityFromGuid(changed); if (EntityManager.Exists(entity) && EntityManager.HasComponent <EntityName>(entity)) { m_EntityGuidToName[changed] = EntityManager.GetBufferAsString <EntityName>(entity); } } foreach (var changed in changes.ChangedEntitiesWithRemoveComponent <EntityName>()) { m_EntityGuidToName.Remove(changed); } foreach (var deleted in changes.DeletedEntities()) { m_EntityGuidToName.Remove(deleted); } }
private void HandleChanges(Changes changes) { foreach (var guid in changes.CreatedEntities()) { CreateLink(guid); } using (var entities = new NativeArray <Guid>(changes.DeletedEntities().ToArray(), Allocator.Temp)) { DeleteLinks(entities); } using (var entities = new NativeArray <Guid>(changes.ReparentedEntities().ToArray(), Allocator.Temp)) { ReparentLinks(entities); } using (var entities = new NativeArray <Guid>(changes.EnabledStateChanged().ToArray(), Allocator.Temp)) { SetEnabledState(entities); } }