ReSharper 2026.1 Help

コードインスペクション:「ComponentLookup」タイプのフィールドは、使用する前に更新する必要があります。

Unity DOTS(データ指向テクノロジースタック)では、 ComponentLookup<T> (旧 ComponentDataFromEntity<T> )オブジェクトは、コンポーネントデータにアクセスする前に適切に同期されている必要があります。 このインスペクションは、システム内の ComponentLookup フィールドが毎フレーム更新されることを保証します。

なぜこれが問題なのか?

ComponentLookup は、異なるエンティティ間でコンポーネントデータへのアクセスを提供します。 最新バージョンのデータを保持し、依存関係の追跡を正しく処理するためには、現在の SystemState を使用して毎フレーム更新する必要があります。 .Update(ref state) の呼び出しを怠ると、古いデータを使用したり、実行時エラーが発生したりする可能性があります。

直す方法

システムの OnUpdate メソッド(または OnCreate および OnDestroy を除くその他の適切なメソッド)内で、 ComponentLookup フィールドに対して .Update(ref state) を呼び出します。 ReSharper は、必要な更新呼び出しを自動的に挿入するクイックフィックスを提供します。

public void OnUpdate(ref SystemState state) { // ... code using myLookup ... }
public void OnUpdate(ref SystemState state) { myLookup.Update(ref state); // ... code using myLookup ... }
2026 年 6 月 12 日