Vixen
c7401864
csharp
public static class AiSnapshots

Fills an AiAgentSnapshot from a running agent.

Read the guide page for this →

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 MaximumRowsPerSection

    How 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