コードインスペクション: DOTS: IAspect フィールドは次のいずれかの型である必要があります: RefRW、RefRO、EnabledRefRW、EnabledRefRO、DynamicBuffer、または Entity
Unity DOTS(データ指向テクノロジースタック)では、 IAspect 宣言はフィールド型に関して特定の ECS パターンに従う必要があります。 このインスペクションは、 Unity.Entities.IAspect を実装する構造体内のフィールドが有効なアクセサー型を使用することを保証します。
なぜこれが問題なのか?
IComponentData を実装する構造体であるフィールドは、 IAspect 内のフィールドとして直接アクセスすることはできません。 ECS データストリームと正しくやり取りするには、 RefRW<T> や RefRO<T> などの特定のアクセサー型でラップする必要があります。 コンポーネントフィールドを直接使用すると、Unity の DOTS フレームワークでコンパイルエラーまたは実行時エラーが発生します。
有効なアクセサータイプ
IAspect 構造体では、フィールドは次のいずれかの型でなければなりません。
RefRW<T>(読み書き参照)RefRO<T>(読み取り専用参照)EnabledRefRW<T>(有効化可能なコンポーネントの読み書き参照)EnabledRefRO<T>(有効化可能なコンポーネントの読み取り専用リファレンス)DynamicBuffer<T>Entity
修正方法
問題のあるフィールド型を適切なアクセサーでラップします。 JetBrains Rider は、フィールドを有効なアクセサーで自動的にラップするクイックフィックスを提供します。 EnabledRef と Ref のどちらのアクセサーを使用するかは、コンポーネント型が IEnableableComponent も実装しているかどうかによって異なります。
public readonly SomeComponentData SomeField;
public readonly RefRO<SomeComponentData> SomeField;
2026 年 6 月 12 日