I have an question: MultiReactiveSystem._collectedEntities do NOT Clear When _buffer.Count equal zero.
Leading to MultiReactiveSystem.Filter() Get Called Every Frame.
Here's some code
public abstract class MultiReactiveSystem<TEntity, TContexts> : IReactiveSystem
{
public void Execute() {
for (int i = 0; i < _collectors.Length; i++) {
var collector = _collectors[i];
if (collector.count != 0) {
_collectedEntities.UnionWith(collector.GetCollectedEntities<TEntity>());
collector.ClearCollectedEntities();
}
}
foreach (var e in _collectedEntities) {
if (Filter(e)) {
e.Retain(this);
_buffer.Add(e);
}
}
if (_buffer.Count != 0) {
try {
Execute(_buffer);
} finally {
for (int i = 0; i < _buffer.Count; i++) {
_buffer[i].Release(this);
}
_collectedEntities.Clear();
_buffer.Clear();
}
}
}
}
Hi,
I have an question: MultiReactiveSystem._collectedEntities do NOT Clear When _buffer.Count equal zero. Leading to MultiReactiveSystem.Filter() Get Called Every Frame.
Here's some code
Cheers