public void ClearGroups()
{
foreach(var group in _groups.Values) {
group.RemoveAllEventHandlers();
var entities = group.GetEntities();
for (int i = 0; i < entities.Length; i++) {
entities[i].Release(group);
}
if(OnGroupCleared != null) {
OnGroupCleared(this, group);
}
}
_groups.Clear();
for (int i = 0; i < _groupsForIndex.Length; i++) {
_groupsForIndex[i] = null;
}
}