Agent properties
Now that we can create agents, we're going to take a step back and look at what properties are available to an agent and what they mean.
Orientation
Whenever you need to return the orientation of an agent, it's easiest to use the forward vector that usually represents the direction of movement of an agent. Both the left and up vectors of orientation are available as well. Whenever you need to change an agent's direction, simply set its forward vector.
The forward axis
To access and set the forward vector of our agents, we can use the built-in GetForward
and SetForward
helper functions.
local forwardVector = agent:GetForward(); Agent.SetForward(agent, forwardVector);
The left axis
We can also access the left orientation vector using the GetLeft
helper function.
local leftVector = agent:GetLeft();
The up axis
Accessing the up orientation vector is similarly provided by a GetUp
helper function.
local upVector = agent:GetUp();
Location
An agent's position is the center of the mass of its capsule representation within the physics simulation. If you need to determine the origin of an agent, simply return its position and subtract half its height from the y component of the position.
Position
To access and set the position of agents, we can use the GetPosition
and SetPosition
helper functions.
local positionVector = agent:GetPosition(); agent:SetPosition(positionVector);
Size
The size of the agent and their capsule representation is determined by the agent's height and radius. When changing these values, the physics simulation will also adjust and create a new representation for the agent based on the changes.
Height
Accessing the height of the agents can be done through the GetHeight
and SetHeight
helper functions.
local height = agent:GetHeight(); agent:SetHeight(height);
Radius
To access and modify the radius of an agent, we can use the GetRadius
and SetRadius
functions.
local radius = agent:GetRadius(); agent:SetRadius(radius);