void updateGroupsComponentAddedOrRemoved(
Entity entity, int index, IComponent component)
{
var groups = _groupsForIndex[index];
if(groups != null) {
var events = EntitasCache.GetGroupChangedList();
for(int i = 0; i < groups.Count; i++) {
events.Add(groups[i].handleEntity(entity));
}
for(int i = 0; i < events.Count; i++) {
var groupChangedEvent = events[i];
if(groupChangedEvent != null) {
groupChangedEvent(
groups[i], entity, index, component
);
}
}
EntitasCache.PushGroupChangedList(events);
}
}