- Learning Game AI Programming with Lua
- David Young
- 303字
- 2021-08-05 17:02:14
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);
- 數據要素安全流通
- Google Visualization API Essentials
- Mastering Ninject for Dependency Injection
- 信息系統與數據科學
- 從0到1:數據分析師養成寶典
- 卷積神經網絡的Python實現
- Starling Game Development Essentials
- gnuplot Cookbook
- HikariCP連接池實戰
- 視覺大數據智能分析算法實戰
- SQL Server深入詳解
- Oracle 11g+ASP.NET數據庫系統開發案例教程
- Python 3爬蟲、數據清洗與可視化實戰
- 數據分析思維:產品經理的成長筆記
- Cognitive Computing with IBM Watson