ReSharper 2026.1 Help

代码检查:DOTS: IAspect 字段必须为以下类型之一:RefRW、RefRO、EnabledRefRW、EnabledRefRO、DynamicBuffer 或 Entity

在 Unity DOTS(数据导向技术栈)中, IAspect 声明必须遵循 ECS 字段类型的特定模式。 此检查确保实现 Unity.Entities.IAspect 的结构体中的字段使用有效的访问器类型。

为什么这会导致问题?

类型为实现 IComponentData 的结构体的字段,不能作为 IAspect 中的字段直接访问。 它们必须用特定的访问器类型包装,如 RefRW<T>RefRO<T> ,以正确地与 ECS 数据流交互。 直接使用组件字段将在 Unity 的 DOTS 框架中导致编译或运行时错误。

有效访问器类型

IAspect 结构体中,字段必须为以下类型之一:

  • RefRW<T> (读写引用)

  • RefRO<T> (只读引用)

  • EnabledRefRW<T> (可启用组件的读写引用)

  • EnabledRefRO<T> (可启用组件的只读引用)

  • DynamicBuffer<T>

  • Entity

修正方法

请使用适当的访问器包装有问题的字段类型。 ReSharper 提供了一键修复,可自动用有效的访问器包装字段。 在 EnabledRefRef 访问器之间的选择,取决于组件类型是否同时实现 IEnableableComponent

public readonly SomeComponentData SomeField;
public readonly RefRO<SomeComponentData> SomeField;
2026年 5月 8日