- 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.
- Hands-On Data Structures and Algorithms with Rust
- Google Visualization API Essentials
- 新型數(shù)據(jù)庫系統(tǒng):原理、架構(gòu)與實(shí)踐
- Remote Usability Testing
- 智能數(shù)據(jù)時(shí)代:企業(yè)大數(shù)據(jù)戰(zhàn)略與實(shí)戰(zhàn)
- SQL優(yōu)化最佳實(shí)踐:構(gòu)建高效率Oracle數(shù)據(jù)庫的方法與技巧
- 高維數(shù)據(jù)分析預(yù)處理技術(shù)
- Hadoop大數(shù)據(jù)開發(fā)案例教程與項(xiàng)目實(shí)戰(zhàn)(在線實(shí)驗(yàn)+在線自測)
- 貫通SQL Server 2008數(shù)據(jù)庫系統(tǒng)開發(fā)
- 數(shù)據(jù)庫應(yīng)用系統(tǒng)技術(shù)
- Filecoin原理與實(shí)現(xiàn)
- 數(shù)據(jù)庫查詢優(yōu)化器的藝術(shù):原理解析與SQL性能優(yōu)化
- AndEngine for Android Game Development Cookbook
- 成功之路:ORACLE 11g學(xué)習(xí)筆記
- 一類智能優(yōu)化算法的改進(jìn)及應(yīng)用研究