news 2026/4/17 19:42:52

关于性能优化的说明-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于性能优化的说明-–-behaviac

原文

概述

behaviac作为图形化的脚本,设计上是用来调用代码(c++,c#)提供的方法,在调用这些方法的时候会有些额外消耗,该消耗已经被充分优化,可以参考消耗。

实践中,要尽量把需要计算的操作由代码实现,通过方法提供给behaviac,behaviac只是去选择这些方法,behaviac作为选择者,发挥behaviac灵活直观的优势。

设计

要想高效的使用behaviac,首先要有好的设计,需要什么Agent,Agent需要有什么属性,什么方法,有一个好的接口。所谓好,是指不能太底层,也不能太高层。

  • 太底层,意味着需要进行很多小的计算
  • 太高层,意外着失去了灵活性

底层的计算要尽量在代码(c++或c#)实现。behaviac用来做策略选择。

behaviac虽然提供了Assignment,Compute,Compare,IfElse等节点,允许做一些“小的”计算,允许就像写代码一样进行if else的基本选择,但不鼓励这样做。鼓励使用Selector,Sequence,前置,后置等节点及附件。

持续运行的动作

Agent提供的方法,最好是能够持续运行的方法,比如,播放动画,移动一段距离,都是持续很多帧的动作;而不是只是返回某个值,然后再需要在行为树里根据该值做比较,进行计算,再执行其他小的一帧触发的方法。

持续运行的节点在下一帧会被持续继续执行,behaviac不会愚蠢的每一帧都从根节点重新执行。但是,不好的行为树(只是简单的成功或失败,没有返回运行的节点)就会迫使behaviac每一帧都不得不从根节点重新选择。可以参考行为树的基本概念及进阶。

持续运行的动作往往需要大量计算,由代码(c++或c#)实现,behaviac只是在高层去选择使用它,避免大量的计算。这样子,利用behaviac的灵活直观的优势而不会有性能的损失。

并行及选择检测节点

选择监测节点以及并行节点用起来很方便,但是需要提醒的是,相比其他节点,这两个节点比较费。

并行节点每次更新都会更新它所有的子节点(子树),选择监测节点也是如此。不仅如此,这两个节点还会导致接管所在树对处于运行状态节点的控制,形成多一级的控制。(不理解没关系,总之,比其他节点更费。)

不是说这两个节点不能用,但是使用起来请注意其性能,特别的不能滥用,最好不要嵌套这两个节点。

发布版

当发布版本或测量性能的时候,可以定义宏BEHAVIAC_RELEASE关闭开发功能,这样子性能是最优的。或者可以保留开发功能但使用功能开关有选择的关闭或打开开发功能。

关于BEHAVIAC_RELEASE可以参考优化及性能

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 2:34:25

FIFA 23实时编辑器:免费终极修改工具完整使用指南

FIFA 23实时编辑器:免费终极修改工具完整使用指南 【免费下载链接】FIFA-23-Live-Editor FIFA 23 Live Editor 项目地址: https://gitcode.com/gh_mirrors/fi/FIFA-23-Live-Editor FIFA 23实时编辑器是一款功能强大的游戏数据修改工具,让玩家能够…

作者头像 李华
网站建设 2026/4/17 8:24:37

记录自己第一次搭建vps

VPS 服务购买 我使用的Ucloud的服务,新用户首次购买是我对比了一些后,发现比较便宜的,最有性价比的,香港一年1c1g30M 共50多元 购买地址:https://passport.ucloud.cn?cps_codeA1XdAs9uyltCeit4WygHOL ssh链接工具 感谢…

作者头像 李华
网站建设 2026/4/17 3:31:17

传统街景采集VS AI生成:效率提升300%的秘诀

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个街景处理效率对比工具,展示AI生成与传统方法的差异:1. 模拟传统采集流程的时间线 2. 展示AI生成的工作流程 3. 实时效率对比仪表盘 4. 成本计算器。…

作者头像 李华
网站建设 2026/4/17 14:00:24

认识AI时代的根本变化(1)

序言:编程教育的历史拐点从冯诺依曼时代到互联网时代,编程学习方式在不断演变,但核心逻辑始终是"学知识点→手写代码→调试验证"。而LLM的爆发式发展正在打破这一百年传统。这不仅仅是工具更新,而是一场认知范式的革命—…

作者头像 李华
网站建设 2026/4/17 22:51:31

如何用AI一键生成.NET Framework 3.5离线安装包解决方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个PowerShell脚本,自动下载.NET Framework 3.5离线安装包所需的所有组件,并将其打包成可部署的离线安装包。脚本应包含以下功能:1) 自动检…

作者头像 李华
网站建设 2026/4/17 16:50:52

Spoolman终极指南:彻底解决3D打印丝材管理难题

你是否曾经遇到过这样的情况:正准备开始3D打印,却发现丝材剩余量不够完成整个模型?或者在不同打印机之间切换时,总是记不清哪台机器上装的是什么规格的丝材?更糟糕的是,你是否曾经因为忘记库存情况而重复购…

作者头像 李华