From 6b8b3d8c6ed54534ac553bc81c124ea629be5def Mon Sep 17 00:00:00 2001 From: andreakarasho Date: Mon, 27 Jan 2025 01:13:58 +0100 Subject: [PATCH] use TQueryData for single() --- src/Bevy.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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();