• 注册
欢迎加入behaviac Q&A网站。behaviac是腾讯开源组件https://github.com/TencentOpen/behaviac 官方网站:http://www.behaviac.com/,提供各种文档和教程及手册 为了您及时的获得您最新问题的评论或者回答,请提供并验证您的邮箱

性能优化方案求助

0 喜欢 0 不喜欢
80 浏览

关于这个话题,我想问下在我们现在的项目中,如何做好架构使得行为树的性能最优

我们现在行为树工程是用于控制单位移动和攻击,基础的设想是一个单位,拥有不定数量的武器(1个或者多个,预先生成,不会动态变化),武器都是可以自动独立开火,移动的指令由玩家控制,但是:

1.武器开火逻辑又要依附于单位自身的一些状态,比如有些单位的武器,必须在移动停止之后,才能攻击。

2.单位的移动与否,也要获取武器是否开火的状态来判定。比如有类似A地板的命令,一旦单位身上的远程武器准备开火,则会停下行动。

目前实践的方法是把单位当做一个agent,跑一颗行为树,每个单位下面有N个武器,每个武器也当做一个agent,跑武器的行为树,这样一个单位身上实际跑了多颗树,按照你们之前在http://bbs.behaviac.com/index.php/1348/%E4%B8%80%E4%B8%AAagent%E8%83%BDbtload%E5%A4%9A%E6%A3%B5%E6%A0%91%E5%90%97

回复的说法,性能应该不是最优的吧?

那想达到最优的性能就是把这些都整到一棵树上?

最新提问 8月 22, 2016 用户: qq_5710b3d0791e7 (950 分)

1个回答

0 喜欢 0 不喜欢
“目前把单位当做一个agent,跑一颗行为树,每个武器也当做一个agent,跑武器的行为树,按照你们回复的说法,性能应该不是最优的吧?”

性能是否是最优的不好说。这种做法也是可行的。

 

“那如何整到一棵树上呢?”

如果想整成一个树,则需要通过weapon1,weapon2两个成员来访问该成员的属性及方法,也是可行的。

 

还有在回答你这个问题的时候,我做了个测试workspace,发现在没有元信息的情况下,通过weapon1,weapon2等来访问其成员变量或函数的过程中有bug,我们在下个版本(3.5.12)fix掉。敬请关注。
最新回答 8月 22, 2016 用户: jonygli (57,510 分)
...