コードインスペクション: 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
直す方法
問題のあるフィールド型を適切なアクセサーでラップします。 ReSharper では、フィールドを有効なアクセサーで自動的にラップするクイックフィックスが提供されます。 EnabledRef と Ref のどちらのアクセサーを使用するかは、コンポーネント型が IEnableableComponent も実装しているかどうかによって異なります。
public readonly SomeComponentData SomeField;
public readonly RefRO<SomeComponentData> SomeField;
2026 年 6 月 12 日