diff --git a/src/Bevy.cs b/src/Bevy.cs index 43bdce7..a6dfc12 100644 --- a/src/Bevy.cs +++ b/src/Bevy.cs @@ -417,11 +417,14 @@ public static ISystemParam Generate(World arg) public TQueryData Iter(EcsID id) => TQueryData.CreateIterator(_query.Iter(id)); - public ref T Single() where T : struct - => ref _query.Single(); - - public EntityView Single() - => _query.Single(); + public TQueryData Single() + { + EcsAssert.Panic(_query.Count() == 1, "'Single' must match one and only one entity."); + var enumerator = GetEnumerator(); + var ok = enumerator.MoveNext(); + EcsAssert.Panic(ok, "'Single' is not matching any entity."); + return enumerator; + } public int Count() => _query.Count();