news 2026/9/15 5:36:43

关于性能优化的说明-–-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/9/15 18:39:47

企业环境中.NET 3.5离线部署实战指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个企业级.NET Framework 3.5离线部署工具,包含:1) 图形化界面选择安装源路径;2) 自动识别域内计算机;3) 批量静默安装功能&…

作者头像 李华
网站建设 2026/9/15 14:51:09

TVBoxOSC调试实战指南:从零掌握5大排障核心技能

TVBoxOSC调试是每个用户必须掌握的关键技能,面对设备连接异常、界面无响应、功能模块失效等常见问题,一套系统化的调试方法能帮你快速定位并解决问题。本指南将带你从基础到进阶,掌握TVBoxOSC调试的核心要点。 【免费下载链接】TVBoxOSC TVBo…

作者头像 李华
网站建设 2026/9/15 3:52:39

AI助力Ubuntu输入法开发:从零到一键部署

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个基于Ubuntu的智能输入法,支持拼音和五笔输入,具有用户词库记忆功能。使用Python和GTK开发,集成AI模型优化输入预测。要求代码结构清晰&a…

作者头像 李华
网站建设 2026/9/13 18:59:54

1小时打造专属视频下载器:you-get原型开发实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速开发一个定制视频下载器原型,基于you-get核心功能。特殊需求:1) 只下载特定分辨率(如1080p) 2) 自动添加片头片尾 3) 下载完成后自动转MP3 4) 集成到Tel…

作者头像 李华
网站建设 2026/9/15 6:57:02

使用LessPageEngineer实现某祥航空机票查询(t盾)

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 1. 开启LPE服务 from LessPag…

作者头像 李华
网站建设 2026/9/14 22:31:12

gridstack.js演进历程:从布局算法到设计哲学的深度解析

gridstack.js演进历程:从布局算法到设计哲学的深度解析 【免费下载链接】gridstack.js 项目地址: https://gitcode.com/gh_mirrors/gri/gridstack.js gridstack.js作为一款强大的网格布局库,通过其独特的拖放功能和响应式设计,彻底改…

作者头像 李华