Hi! Can somebody explain me, why query3 don’t work like another two. To be more precise, query3 AddChangedVersionFilter just don’t work.
[InternalBufferCapacity(256)]
public struct FatBuffer : IBufferElementData {
public int BufferData;
}
public partial struct SystemA : ISystem {
private EntityQuery query1;
private EntityQuery query2;
private EntityQuery query3;
public void OnCreate(ref SystemState state) {
var myArchetype = state.EntityManager.CreateArchetype(typeof(CivicComponent), typeof(FatBuffer));
for (var i = 0; i < 3; i++) {
var createdEntity = state.EntityManager.CreateEntity(myArchetype);
state.EntityManager.SetName(createdEntity, $"Entity No. {i}");
}
query1 = SystemAPI.QueryBuilder()
.WithAll<CivicComponent>()
.Build();
query1.AddChangedVersionFilter(ComponentType.ReadOnly<CivicComponent>());
query2 = state.GetEntityQuery(
new EntityQueryBuilder(Allocator.Temp)
.WithAll<CivicComponent>()
);
query2.AddChangedVersionFilter(ComponentType.ReadOnly<CivicComponent>());
query3 = new EntityQueryBuilder(Allocator.Temp)
.WithAll<CivicComponent>()
.Build(state.EntityManager);
query3.AddChangedVersionFilter(ComponentType.ReadOnly<CivicComponent>());
}
public void OnUpdate(ref SystemState state) {
foreach (
var entity in query1.ToEntityArray(Allocator.Temp)
) {
Debug.Log($"Query 1: {state.EntityManager.GetName(entity)} foreach at frame {Time.frameCount}");
}
foreach (
var entity in query2.ToEntityArray(Allocator.Temp)
) {
Debug.Log($"Query 2 : {state.EntityManager.GetName(entity)} foreach at frame {Time.frameCount}");
}
foreach (
var entity in query3.ToEntityArray(Allocator.Temp)
) {
Debug.Log($"Query 3 : {state.EntityManager.GetName(entity)} foreach at frame {Time.frameCount}");
}
}
}