zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Kubernetes进阶实战读书笔记:持久化存储卷(pvc详解)
    Nginx核心知识100讲学习笔记(陶辉)详解HTTP模块(接受请求模块|正则表达式|冲突合并)
    Nginx核心知识100讲学习笔记(陶辉)详解HTTP模块(详解11阶段)
    WIndows 编辑的文件的文件在Linux下查看每行末尾有 ^M
    JQuery ajax 使用
    查看oracle死锁进程并结束死锁
    Oracle 死锁处理(查看锁表语句及解锁)
    BS表单编程注意事项
    Delphi MDI多文档架构几个问题解决
    Delphi MDI子窗体
  • 原文地址:https://www.cnblogs.com/yuwenxiaozi/p/4881077.html
Copyright © 2011-2022 走看看