用行为树来制作AI是非常方便的,今天就给大家简单介绍一下行为树的强大之处。

所用插件 Behavior Designer v1.421

最开始 我使用过Rain插件,不过用过Behavior Designer后感觉界面更为直观,更容易设计出AI

新建一个项目,先导入该插件

新建一个Cube,命名为Floor,作为本场景的地板,Scale设置为(20, 0.1, 20),Tag设置为Floor

创建一个Capsule,命名为Player,Tag设置为Player,添加一个简单的Player脚本控制移动

using UnityEngine;
using System.Collections; public class Player : MonoBehaviour { public float speed = ;
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, , _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

unity行为树制作AI简单例子(1)的更多相关文章

  1. unity行为树制作AI简单例子(2)

    继续昨天的工程,给Monster添加一个空物体命名为AI,在AI添加脚本BehaviorTree,然后就可以打开行为树编辑器进行编辑了 先写好自定义的节点脚本,下面是一个寻找漫游点的行为节点脚本 us ...

  2. 【Unity技巧】制作一个简单的NPC

    1. 写在前面 前几天看了cgcookie的一个教程,学习了下怎么根据已有人物模型制作一个仿版的NPC人物,感觉挺好玩的,整理一下放到博客里! 先看一下教程里面的最终效果. 是不是很像个幽灵~ 下面是 ...

  3. [转] 3个学习Socket编程的简单例子:TCP Server/Client, Select

    以前都是采用ACE的编写网络应用,最近由于工作需要,需要直接只用socket接口编写CS的代码,重新学习这方面的知识,给出自己所用到的3个简单例子,都是拷贝别人的程序.如果你能完全理解这3个例子,估计 ...

  4. iOS实用技能扩展-静态库的制作与简单使用

    前言:此文是关于静态库的概念描述,如何制作及简单调试使用,不同版本的说明与场景使用. 1.关于库的简介: 库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetw ...

  5. TensorFlow练习13: 制作一个简单的聊天机器人

    现在很多卖货公司都使用聊天机器人充当客服人员,许多科技巨头也纷纷推出各自的聊天助手,如苹果Siri.Google Now.Amazon Alexa.微软小冰等等.前不久有一个视频比较了Google N ...

  6. 让AI简单且强大:深度学习引擎OneFlow技术实践

    本文内容节选自由msup主办的第七届TOP100summit,北京一流科技有限公司首席科学家袁进辉(老师木)分享的<让AI简单且强大:深度学习引擎OneFlow背后的技术实践>实录. 北京 ...

  7. JFrame、JPanel 、Layout开发的简单例子

    写了Java这么久,居然发现想手写一个带网格袋布局的JFrame,还不记得怎么写,写了这么多代码真不敢说记得所有细节. 幸好,只要记清楚概念就能快速开发.首先,明确一下3种容器类的差别和用途: No. ...

  8. Unity 3D 简易制作摄像机围绕物体随鼠标旋转效果

    Unity 3D 简易制作摄像机围绕物体随鼠标旋转效果 梗概: 一. 摄像机围绕目标物体旋转, 即摄像机离目标物体有一定的距离且旋转轴心为该物体的位置. 二. 当目标物体被障碍物挡住后, 需要将摄像机 ...

  9. PureMVC和Unity3D的UGUI制作一个简单的员工管理系统实例

    前言: 1.关于PureMVC: MVC框架在很多项目当中拥有广泛的应用,很多时候做项目前人开坑开了一半就消失了,后人为了填补各种的坑就遭殃的不得了.嘛,程序猿大家都不喜欢像文案策划一样组织文字写东西 ...

随机推荐

  1. 近期编程问题——epoll failed:bad file descriptor

    出现问题:epoll_wait:Bad file descriptor 原因:IO时间的socket描述符在epoll_ctl处理前就关闭了. 解决方法:不要在epoll_ctl之前关闭socket描 ...

  2. Spring3.0 与 MyBatis框架 整合小实例

    本文将在Eclipse开发环境下,采用Spring MVC + Spring + MyBatis + Maven + Log4J 框架搭建一个Java web 项目. 1. 环境准备: 1.1 创建数 ...

  3. Apache Server Status主机状态查看

    10月30日,国外安全研究人员发现由于对apache设置不严,导致服务器状态暴露于公网.本来apache有一个叫server-status 的功能,为方便管理员检查服务器运行状态的.它是一个HTML页 ...

  4. GridView导出excel格式问题

    在导出的点击事件中,代码如下: //指定导出对应单元格为文本样式 string style = @"<style> .test { vnd.ms-excel.numberform ...

  5. JAVA 入门编程

    1.输入以及输出 当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象.如果要获取输入的内容 ...

  6. DOS命令大全!

    一)MD——建立子目录 1.功能:创建新的子目录 2.类型:内部命令 3.格式:MD[盘符:][路径名]〈子目录名〉 4.使用说明: (1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前 ...

  7. Gear VR开发

    下载安装Unity开发工具,要求Unity 5.3.0 或更高版本         下载Oculus签名,做Gear VR交互功能模块.关于输入交互,可以下载VR Samples(地址:https:/ ...

  8. 【LeetCode OJ】Symmetric Tree

    Problem Link: https://oj.leetcode.com/problems/symmetric-tree/ To solve the problem, we can traverse ...

  9. 设置ubuntu 下git 的用户名和邮箱

    设置ubuntu 下git 的用户名和邮箱 摘自  慢慢修远路,上下求索心http://yanshaozhi.iteye.com/blog/386752 虽然我没看怎么明白 但我用第一总方法就设置好了 ...

  10. 如何全面解决ECSHOP的jquery冲突

    主要就是Ecshop的AJAX传输类,transport.js中重写了object的对象原型,从而导致了与jq框架的冲突. 解决: 1. 删除transport.js中587行 - 636行中关于ob ...