コードインスペクション:関数で「GetSingleton」呼び出しの結果を使用するには、「OnCreate」に「RequireForUpdate」呼び出しを含める必要があります。
このインスペクションは、システムの OnCreate メソッドが RequireForUpdate を持つシングルトンを要求しない場合に、 ISystem コード内の SystemAPI.GetSingleton<T>() および GetSingletonEntity<T>() 呼び出しを報告します。
RequireForUpdate<T>() がない場合、シングルトンが存在しない場合でもシステムが動作してしまうため、シングルトンへのアクセスが安全ではなくなります。
サンプル
この例では、 GetSingleton<GameConfig>() が呼び出されますが、システムは更新に GameConfig を必要としていません。 クイックフィックスでは、不足している要件を OnCreate に追加します。
using Unity.Entities;
public partial struct ExampleSystem : ISystem
{
public void OnUpdate(ref SystemState state)
{
// Reported: singleton must be requested with RequireForUpdate
var config = SystemAPI.GetSingleton<GameConfig>();
}
}
using Unity.Entities;
public partial struct ExampleSystem : ISystem
{
public void OnCreate(ref SystemState state)
{
state.RequireForUpdate<GameConfig>();
}
public void OnUpdate(ref SystemState state)
{
var config = SystemAPI.GetSingleton<GameConfig>();
}
}
クイックフィックス
クイックフィックスを使用して、シングルトン型に必要な RequireForUpdate<T>() 呼び出しを追加するか、不足しているすべてのシングルトン要件を一度に追加します。
OnCreate メソッドが存在しない場合、クイックフィックスによって新規に作成されます。 OnCreate がすでに存在する場合は、そこに不足しているリクエストが挿入されます。
2026 年 6 月 12 日