public interface IScoredCandidateSet<out T>A list of candidates scored the same way, whatever a candidate happens to be.
Remarks
Doc 37 § D14, as a type. Unreal's EQS answers "where should I stand" by generating candidate points, running scored tests over them and taking the best; utility scoring answers "what should I do" by generating candidate actions, running scored considerations over them and taking the best. Those are the same machine, and this interface is where that stops being a remark and becomes something the compiler checks: UtilitySet implements it and so does EnvironmentQuery.
⚠ Factor counts are per candidate, not per set, which is the one place the two hosts genuinely differ. Every point in a query runs the same test list; every action in a utility set has its own considerations. A shared abstraction that assumed the query's shape would have made the utility set implement it by lying.
Fields and properties (1)
int CandidateCountHow many candidates there are.
Methods (5)
T CandidateAt(int index)One of them.
Symbol CandidateName(int index)What one candidate is called, for a table, an overlay and a diagnostic.
int FactorsOf(int index)How many factors score one candidate.
Symbol FactorName(int index, int factor)What one of a candidate's factors is called.
float ScoreOf(in AgentContext context, int index, Span<float> detail = default(Span<float>))Scores one candidate, and optionally reports every factor it read.
Used by (5)
- CandidateScoringVixen.Ai
- EnvironmentQueryVixen.Ai
- QueryScorerExitCriteriaTestsVixen.Ai.Tests
- SeamTestsVixen.Ai.Nodes.Tests
- UtilitySetVixen.Ai