public static class AiSnapshotsFills an AiAgentSnapshot from a running agent.
Remarks
The three branches doc 37 § D20's table describes, and the only three there are. Everything after this point — the overlay, the editor panel, the remote channel — reads rows and does not know which planner produced them.
⚠ A capture reads live data, so it runs on the thread that owns the agent. It walks a World, a Blackboard and a tree's memory block, and it re-scores a utility set — which is the same rule GoapSnapshot.Take follows, for the same reason. What comes out is strings and numbers and is safe anywhere.
⚠ Nothing here mutates the agent, which is not free to arrange and is the difference between a debugger and a heisenbug. A utility set is scored through Score, which takes its state by ref readonly, rather than through Choose, which would advance the decision clock and start cooldowns; a GOAP plan is read rather than re-resolved.
Fields and properties (1)
public const int MaximumRowsPerSectionHow many rows one list contributes at most, so a captured agent is bounded.
Methods (1)
Used by (6)
- AiDebugChannelVixen.Ai
- AiGameplayDebuggerVixen.Ai.Diagnostics
- AiSnapshotTestsVixen.Ai.Tests
- VillageSampleTestsVixen.Ai.Nodes.Tests
- AgentDebugModelVixen.Editor.Ai
- AgentDebugModelTestsVixen.Editor.AssetEditors.Tests