- Unity 5.x Game AI Programming Cookbook
- Jorge Palacios
- 248字
- 2021-07-09 19:37:49
Blending behaviors by weight
Blending techniques allow you to add behaviors and mix them without creating new scripts every time you need a new type of hybrid agent.
This is one of the most powerful techniques in this chapter, and it's probably the most used behaviour-blending approach because of its power and the low cost of implementation.
Getting ready
We must add a new member variable to our AgentBehaviour
class called weight
and preferably assign a default value—in this case, 1.0f
. Besides this, we should refactor the Update
function to incorporate weight
as a parameter to the Agent
class' SetSteering
function. All in all, the new AgentBehaviour
class should look something like this:
public class AgentBehaviour : MonoBehaviour
{
public float weight = 1.0f;
// ... the rest of the class
public virtual void Update ()
{
agent.SetSteering(GetSteering(), weight);
}
}
How to do it...
We just need to change the SetSteering
agent function's signature and definition:
public void SetSteering (Steering steering, float weight)
{
this.steering.linear += (weight * steering.linear);
this.steering.angular += (weight * steering.angular);
}
How it works...
The weights are used to amplify the steering
behavior result, and they're added to the main steering structure.
There's more...
The weights don't necessarily need to add up to 1.0f
. The weight
parameter is a reference for defining the relevance that the steering
behavior will have among the other ones.
See also
In this project, there is an example of avoiding walls, worked out using weighted blending.
- Python數據分析入門:從數據獲取到可視化
- 大數據可視化
- Modern Programming: Object Oriented Programming and Best Practices
- Visual Studio 2015 Cookbook(Second Edition)
- UDK iOS Game Development Beginner's Guide
- 大數據Hadoop 3.X分布式處理實戰
- Microsoft Power BI數據可視化與數據分析
- 白話大數據與機器學習
- 大數據技術入門
- Splunk智能運維實戰
- Instant Autodesk AutoCAD 2014 Customization with .NET
- 貫通SQL Server 2008數據庫系統開發
- 大數據數學基礎(Python語言描述)
- Unity 2018 By Example(Second Edition)
- MySQL數據庫實用教程