unity行為樹制作AI簡單例子(1)


用行為樹來制作AI是非常方便的,今天就給大家簡單介紹一下行為樹的強大之處。

所用插件 Behavior Designer v1.421

最開始 我使用過Rain插件,不過用過Behavior Designer后感覺界面更為直觀,更容易設計出AI

新建一個項目,先導入該插件

 

新建一個Cube,命名為Floor,作為本場景的地板,Scale設置為(20, 0.1, 20),Tag設置為Floor

創建一個Capsule,命名為PlayerTag設置為Player,添加一個簡單的Player腳本控制移動

 

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour {

    public float speed = 5;
    private float _x;
    private float _z;

    void Update () {

        _x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;      
        _z = Input.GetAxis("Vertical") * Time.deltaTime * speed;  
        transform.position += new Vector3(_x, 0, _z);  
    }
}

 

導入怪物的模型,並設置好其狀態機,我只簡單設置攻擊、站立和行走3種狀態

 

在場景中拖出一個實例,命名為Monster

 


基本場景已經搭建好了,現在簡單介紹一下行為樹的組件

大致來說行為樹有4種節點

 

Actions行為節點,能執行一定動作
Log就是一個行為節點,能執行一個Log操作,在Inspector面板設置輸出的Text

              

執行結果:

Decorators是裝飾節點,能修飾子節點

Repeater就是一個裝飾節點,它修飾后子節點不斷循環

                              

執行結果:

Composites該節點能決定子節點執行的順序

Return Failure是一個裝飾節點,它的作用是讓子節點無論如何返回Failure

Parallel是平行節點,它會讓子節點都正常執行,無論有沒有節點返回Failure,事實上如果沒有平行節點,右邊的Log是不能執行的,

因為默認是從左到右順序執行,有一個返回Failure則跳出子節點,可在下一個例子順序節點看出

這次把平行節點改成順序節點,右方行為節點就執行不了了,因為左邊返回Failure跳出了子節點

 

Conditionals是判斷節點,配合Composites中的Selector使用

Selector和Conditionals配合使用類似if elseif else的效果

若是第一個判斷節點返回成功,則不繼續運行,相當於if執行成功

若是第一個返回失敗,第二個返回成功,則相當於elseif


若是兩個都返回失敗,則會執行最后一個Log,相當於else

行為樹由四種節點組成,每種節點其實默認都提供了大量節點,這里沒辦法一一介紹,需要自己細細研究,

這一次先到這里,下一次會介紹如何自定義節點並創建一棵完整的行為樹

 

 

美しきもの:http://music.163.com/#/song?id=22782025


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM