Alex
Alex
进一步分析,在Workspace这个类里面创建行为树的时候,如下代码: ```C# public BehaviorTreeTask CreateBehaviorTreeTask(string relativePath) ``` 该方法使用了一个成员变量`m_allBehaviorTreeTasks`来保存所有创建的行为树实例: ```C# // ... // 创建行为树实例 BehaviorTask task = bt.CreateAndInitTask(); Debug.Check(task is BehaviorTreeTask); BehaviorTreeTask behaviorTreeTask = task as BehaviorTreeTask; if (!m_allBehaviorTreeTasks.ContainsKey(relativePath)) { m_allBehaviorTreeTasks[relativePath]...
看具体实现,不过有难度。如果你能读取Behavior Designer导出的文件,并将它映射为behaviac的数据模型导出,最后用behaviac编辑器打开并导出C++或者行为树数据的话是可行的。难就难在映射这部分,需要提取出共同的概念进行转换。 既然是服务器的AI,跟客户端有差异,还不如直接用behaviac的编辑器来设计了。
不是很明白执行期间无法FireEvent是啥意思,你是多线程并发对同一个Agent进行操作吗?如果是单线程操作一个Agent应该不存在这个问题吧。 因为每次执行行为树都是同步操作,行为树执行完以后返回,等待下一次调用。调用行为树也不会阻塞,返回Running的话下次接着那个节点继续执行,如果你是指在Running期间FireEvent会导致问题,有很多种方法可以解决,官网文档:https://www.behaviac.com/concepts/ > 再进阶 > 又有聪明的读者要问了,持续返回“运行”状态的节点固然优化了执行,但其结果就像“阻塞”了BT的执行一样,如果发生了其他“重要”的事情需要处理怎么办?
> It is even worse: When I use `schedule.every().days.at("00:00", timezone_string).do(day_rollover)` > > It get's actually called every time `schedule.run_pending()` is called between 00:00 and 01:00, which is every second for...
if(this.$refs.chart) { this.$refs.chart. resetChart(); } it's should be work. note the resetChart method belong to the Vue component.
@nanoupper hey. can you paste some code? `` do u declare property `ref` set name `chart`?
@nanoupper yes. i can see that. but in template should like this: `` do you declare the `` tag property `ref` set name to `chart`?
Updated: ``` this.$nextTick(() => { if (this.$refs.chart) { this.$refs.chart.resetChart() } }) ``` this code will work fine when you update data.
@tonywangcn what mean of the double click?
OK,老王,我发现最近这个组建好像更新了一些东西,不过这句代码应该是没问题的,你可能需要检查一下数据。如果仍然有问题,咱们周一在看下。:)