-
Notifications
You must be signed in to change notification settings - Fork 76
Измененения 2019.08.30
Dimitry edited this page Aug 30, 2019
·
5 revisions
В фреймворк внесено несколько изменений которые потребуют рефакторинг на текущих проектах.
- Процессоры с дефолтными группами. Полезно если у вас для процессора только 1 группа и вы хотите минимизировать настроеный код. Процессоры работают со всеми фильтрами и атрибутами для групп.
// атрибут говорит что у группы процессора есть два события : на добавление сущности в группу и на выбывание.
[GroupWantEvent(Op.Add | Op.Remove)]
sealed class ProcessorObserver : Processor<ComponentObserver>, ITick
{
public void Tick(float delta)
{
// source является полем группы процессора.
for (int i = 0; i < source.length; i++)
{
ref var cObserver = ref source.entities[i].ComponentObserver();
for (int j = 0; j < cObserver.length; j++)
cObserver.wrappers[j].Check();
}
}
// Методы обработки событий группы.
public override void OnAdd(ent[] entities, int length)
{
for (int i = 0; i < length; i++)
{
ref var cObserver = ref entities[i].ComponentObserver();
for (int j = 0; j < cObserver.length; j++)
cObserver.wrappers[j].FirstTime();
}
}
public override void OnRemove(ent[] entities, int length)
{
for (int i = 0; i < length; i++)
{
ref var cObserver = ref entities[i].ComponentObserver();
for (int j = 0; j < cObserver.length; j++)
cObserver.wrappers[j].Check();
}
}
}