JetBrains Rider 2026.1 Help

代码检查:DOTS:指定的类型必须是结构类型。

Unity DOTS(数据导向技术栈)高度依赖于由 Burst 编译器和 ECS(实体组件系统)架构提供的特定内存布局和性能优化。 为了让这些优化生效,某些 ECS 组件和系统必须实现为值类型(struct)。

检测逻辑

检查目标为实现以下接口的类:

  • Unity.Entities.IAspect

  • Unity.Entities.IJobEntity

  • Unity.Entities.ISystem

如果这些接口由 class (引用类型)而不是 struct (值类型)实现,则检查会触发警告。 引用类型与 DOTS 使用的高性能内存管理及并行处理模型不兼容。

示例

public class MySystem : ISystem { public void OnCreate(ref SystemState state) { } public void OnUpdate(ref SystemState state) { } public void OnDestroy(ref SystemState state) { } }
public struct MySystem : ISystem { public void OnCreate(ref SystemState state) { } public void OnUpdate(ref SystemState state) { } public void OnDestroy(ref SystemState state) { } }
2026年 5月 8日