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

事件参数的初始化

0 喜欢 0 不喜欢
102 浏览

我的这个event_ai_msg是一个AI事件,接收来自副本的消息。在这个事件触发的时候,副本(lua编写)会发过来一个表,比如{66}。

我现在的问题的是,在这个事件触发的时候,行为树编辑器调试直接崩掉了。

我怀疑是因为图中圈红的变量无法初始化导致的。或者有别原因吗?还是有方法可以初始化图中圈红的变量。

 

最新提问 6月 28, 2016 用户: jan (160 分)

1个回答

0 喜欢 0 不喜欢
如果crash,请提供crash的堆栈。

另,类型需要是一致的。

如果event_ai_msg的原型是event_ai_msg(int params),那么FireEvent("event_ai_msg", intValue)。你如果FireEVent的时候传递的不是int,而是int的数组的话,就会报错。
最新回答 6月 28, 2016 用户: jonygli (58,570 分)
我居然又遇到过。。。

这个怀疑是数组没法设置defaultvalue,然后proprty_t.h中TTProperty<VariableType,true>::SetVectorElementAsDefault函数里面会assert

SetVectorElementAsDefault里的assert还是因为类型不匹配。

BEHAVIAC_ASSERT(pProperty->GetTypeId() == GetClassTypeNumberId<ElementType>());

反正,最好提供堆栈哈。

额,看了下源码,是我自己加的assert,不是你说的这个。关注下这行

const ElementType& retV = retV_vec[0];

retV_vec有可能是空的,此时retV是非法引用,在setDefaultValue中

this->m_defaultValue = v时会core
...