【推荐100个unity插件之7】使用BehaviorDesigner插件制作BOSS的AI行为树

简介: 【推荐100个unity插件之7】使用BehaviorDesigner插件制作BOSS的AI行为树

前言

Behavior Designer是一个行为树插件,是一款为了让策划,程序员,美术人员方便使用的可视化

编辑器。Behavior Designer提供了强大的AP1可以让你轻松的创建tasks(任务),配合

uScript和PlayMaker这样的插件,可以不费吹灰之力就能够创建出强大的Al系统,而无需写

行代码。(不懂PlayMaker的,我后面在单独出文章介绍一下,可以期待一下)

BehaviorDesigner插件的基础使用,发哥已经做了详细的介绍了,但是我发现例子很少,于是就有了这篇文章,我自己琢磨实现一个简单的BOSS的AI行为树,把思路分享出来,你可以依据这些思路进行再扩展

不懂BehaviorDesigner基础操作的可以去看发哥的这篇文章:BehaviorDesigner插件制作AI行为树

素材

插件

1、AssetStore下载

插件可以在AssetStore下载到,地址:https://assetstore.unity.com/packages/tools/visual-scripting/behavior-designer-behavior-trees-for-everyone-15277

2.我放了1.7.1版本的到GitCode上,地址:

https://gitcode.net/unity1/unitybehaviordesigner

一、基础使用

新建2d项目,搭建环境,主角和敌人boss,给boss新增animator动画,大致连线

导入BehaviorDesigner插件,点击菜单Tools/Behavior Designer/Editor即可打开编辑器窗口

并在敌人身上创建行为树,空格,新增Repeater节点,并勾选永远循环

打印测试,sequence节点控制从左到右执行

每3秒打印"打印日志"

运行效果

二、敌人物理攻击

新增脚本Attack

using UnityEngine;
using BehaviorDesigner.Runtime;
using BehaviorDesigner.Runtime.Tasks;
public class Attack : Action
{
    public Animator animator;
    public GameObject player;
 
    public override void OnStart(){
      //切换动画状态为攻击
        animator.SetTrigger("Attack");
    }
    public override void OnEnd(){
        Debug.Log("打印2");
    }
}

运行效果,敌人每3秒发动一次攻击

三、敌人面向玩家

新增FacePlayer脚本

using BehaviorDesigner.Runtime.Tasks;
using UnityEngine;
//始终面向主角
public class FacePlayer : Action
{
    private float baseScaleX;
    public GameObject player;
    public override void OnAwake()
    {
        baseScaleX = transform.localScale.x;
    }
    public override TaskStatus OnUpdate()
    {
        Vector3 scale = transform.localScale;
        scale.x = transform.position.x > player.transform.position.x ? baseScaleX : -baseScaleX;
        transform.localScale = scale;
        return TaskStatus.Success;
    }
}

运行效果,先朝向玩家再发起攻击

四、敌人法术攻击

新增Cast脚本

using UnityEngine;
using BehaviorDesigner.Runtime.Tasks;
public class Cast : Action
{
    public GameObject player;
    public GameObject spell;
    public override void OnStart(){
        //生成技能攻击特效
        float playerH = player.gameObject.GetComponent<SpriteRenderer>().sprite.bounds.size.y; //通过SpriteRenderer获得人物高度
        Object.Instantiate(spell, player.transform.position + new Vector3(0, playerH, 0), Quaternion.identity);
    }
}

这次我们用Set Trigger节点控制动画切换

运行效果,大概流程就是开始等待3秒,面朝主角,切换动画为魔法攻击动作,再等待0.5秒后切换回Idle动画,并运行Cast代码,触发攻击特效,一直循环

五、随机进行攻击

关键就是Random Selector节点的使用

中间插入Random Selector节点,分别连接两种攻击模式,运行效果

六、敌人不同的阶段

你可能还希望boss在不同阶段有不同的效果,比如半血以下狂暴,不同技能等

新增IsHealthUnder脚本,我这里就简单举个例子

using BehaviorDesigner.Runtime.Tasks;
public class IsHealthUnder : Action
{
    public float health;
    public override TaskStatus OnUpdate()
    {
        return health < 50 ? TaskStatus.Success : TaskStatus.Failure;
    }
}

新增Selector节点

运行效果,因为是测试,我这里就手动改敌人的血量了

当血量低于50时,处于第二阶段,就会走左边,打印日志,你可以在这里加入敌人新的状态和技能,或者过场动画

当血量大于100时,处于第一阶段,敌人还是正常走前面的逻辑

源码

https://gitcode.net/unity1/unity-ai-behavior

目录
相关文章
|
2月前
|
人工智能 小程序
【一步步开发AI运动小程序】二、引入插件
随着人工智能技术的发展,阿里体育等公司推出的“乐动力”、“天天跳绳”等AI运动APP广受欢迎。本文将引导您从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”。内容包括新建uni-app项目、配置插件、部署模型、安装依赖包、全局初始化和调用插件对象。
|
3月前
|
人工智能 JSON Rust
用 Rust 实现敏感信息拦截插件,提升 AI 网关安全防护能力
本⽂对敏感信息拦截插件的使用方式和实现原理进行了简单介绍,它能够自动检测并处理请求和响应中的敏感词,有效防止敏感信息泄露。通过对不同数据范围的支持和灵活的配置选项,该插件能够适应各种应用场景,确保数据的安全性和合规性。
|
2月前
|
人工智能 JSON Java
【极速入门版】编程小白也能轻松上手Comate AI编程插件
【极速入门版】编程小白也能轻松上手Comate AI编程插件
37 0
|
15天前
|
人工智能 小程序 JavaScript
【一步步开发AI运动小程序】十四、主包超出2M大小限制,如何将插件分包发布?
本文介绍了如何从零开始开发一个AI运动小程序,重点讲解了通过分包技术解决程序包超过2M限制的问题。详细步骤包括在uni-app中创建分包、配置`manifest.json`和`pages.json`文件,并提供了分包前后代码大小对比,帮助开发者高效实现AI运动功能。
|
2月前
|
人工智能 小程序 搜索推荐
成功案例分享|使用AI运动识别插件+微搭,快速搭建AI美体运动小程序
今天给大家分享一个最近使用我们的“AI运动识别小程序插件”+“微搭”搭建小程序的经典案例。
成功案例分享|使用AI运动识别插件+微搭,快速搭建AI美体运动小程序
|
3月前
|
人工智能 C++ 开发者
verilog vscode 与AI 插件
【9月更文挑战第11天】在Verilog开发中,使用Visual Studio Code(VS Code)结合AI插件能显著提升效率。VS Code提供强大的编辑功能,如语法高亮、自动补全和代码格式化;便捷的调试功能,支持多种调试器;以及丰富的插件生态。AI插件则可自动生成代码、优化现有代码、检测并修复错误,还能自动生成文档。常用插件包括Verilog AI Assistant和Verilog Language Server,可根据需求选择合适的工具组合,提高开发效率和代码质量。
187 2
|
4月前
|
传感器 开发工具 vr&ar
ManoMotion⭐二、Unity手势识别插件简介,及效果录屏
ManoMotion⭐二、Unity手势识别插件简介,及效果录屏
|
3月前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
307 0
|
4月前
|
人工智能 开发者
黑神话:悟空中的AI行为树设计
【8月更文第26天】在《黑神话:悟空》这款游戏中,NPC(非玩家角色)的智能行为对于创造一个富有沉浸感的游戏世界至关重要。为了实现复杂的敌人行为模式,游戏开发团队采用了行为树作为NPC决策的核心架构。本文将详细介绍《黑神话:悟空》中NPC AI的设计原理,特别关注行为树的设计与实现。
240 0
|
4月前
|
人工智能 自然语言处理 Linux
免费ChatGPT4o灵办AI可体验浏览器插件
灵办AI就是您所需的最佳助手!我们为您带来了一款多功能AI工具,ChatGPT4o不仅能为您提供精准翻译,还能满足您的对话需求、智能续写、AI搜索、文档阅读、代码生成与修正等多种需求。灵办 AI,真正让工作和学习变得轻松高效!一款多功能智能助手,旨在提升工作和学习效率。它提供实时翻译、对话问答、搜索、写作和网页阅读等服务,支持多种浏览器和操作系统,帮助用户随时获取信息,打破语言障碍,优化内容创作和信息处理。
139 0