Unity ECS:系统找不到实体

Unity ECS : System does not find entities

我在使用 Unity ECS 时遇到问题。我的系统没有通过查询找到我的实体。这是我的设置:我目前只使用一个实体进行测试,该实体由预制件创建,使用此功能:

Entity CreateEntity => GameObjectConversionUtility.ConvertGameObjectHierarchy(_parameters.carPrefab, _conversionSettings);

_assetStore = new BlobAssetStore();
_conversionSettings = GameObjectConversionSettings.FromWorld(World.DefaultGameObjectInjectionWorld, _assetStore);

我的实体已正确创建(我猜是基于实体 window):

我的系统使用这个查询:

Entities.ForEach((DynamicBuffer<EdgeBufferElement> pathBuffer, ref Translation position,
                ref Rotation rotation, ref CarComponentData car) => {
     //logic
}).Schedule(inputDeps);

但是我的系统逻辑没有得到执行。这可能是因为系统显示找不到实体:

我还尝试将查询更改为仅引用翻译,但结果相同。你知道这里出了什么问题吗?

提前感谢您的帮助!

这是因为带有 Prefab 标签的实体在默认情况下会在查询中被忽略(您可以轻松覆盖此 ofc)。

这促进了“预制实体”模式,因为调用 EntityManager.Instantiate( prefab_entity )EntityManager.Instantiate( prefab_gameObject )

快很多

using Unity.Entities;
using Unity.Jobs;
public class LetsTestQuerySystem : SystemBase
{
    protected override void OnCreate ()
    {
        Entity prefab = EntityManager.CreateEntity( typeof(Prefab) , typeof(MyComponent) );
        Entity instance = EntityManager.Instantiate( prefab );// Instantiate removes Prefab tag
        EntityManager.SetName( prefab , "prefab" );
        EntityManager.SetName( instance , "instance" );
    }
    protected override void OnUpdate ()
    {
        Entities
            // .WithAll<Prefab>()// query prefabs only
            .ForEach( ( ref MyComponent component ) => component.Value += 1 )
            .WithBurst().ScheduleParallel();
    }
    struct MyComponent : IComponentData { public int Value; }
}