• 注册
欢迎加入behaviac Q&A网站。behaviac是腾讯开源组件https://github.com/TencentOpen/behaviac 官方网站:http://www.behaviac.com/,提供各种文档和教程及手册 为了您及时的获得您最新问题的评论或者回答,请提供并验证您的邮箱
欢迎来到 behaviac Q&A。 您在bbs里的问题,管理员会当下就收到通知,不要担心管理员看不到您的问题。也请在bbs里提供您的email,这样就可以第一时间收到关于回答,评论的email的通知了。 为了节省大家的时间,请表达好你的问题,提供必要上下文,版本号,平台信息,重现步骤等。

参数类型改变报错,请问有没有办法解决或者其他方法替代?

0 喜欢 0 不喜欢
122 浏览
最新提问 9月 11, 2016 用户: kicchen (340 分)
修改于 9月 11, 2016 用户:kicchen

image

imageimage

image

image

从上到下 图1-图5

一开始我在编辑器中使用了 playSkill方法,参数类型是uint(如图1)

之后代码重构,自定义enum SkillID{}(如图2),将playSkill的参数类型uint改成SkillID(如图3)

导出元信息(如图4)

重新打开编辑器,双击的行为树(引用了playSkill),报错(如图5),点击继续也没用

 

点击

详细信息如下:

有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。

************** 异常文本 **************
System.Exception: Enum value 1 is illegal
   在 Behaviac.Design.Attributes.DesignerEnum.getEnumName(Object obj)
   在 Behaviac.Design.Attributes.DesignerEnum.GetDisplayName(Object obj)
   在 Behaviac.Design.Attributes.DesignerPropertyUtility.RetrieveDisplayValue(Object obj, Object parent, String paramName, Int32 indexInArray)
   在 Behaviac.Design.MethodDef.getStringValue(Boolean isDisplay)
   在 Behaviac.Design.Attributes.DesignerMethodEnum.GetDisplayValue(Object obj)
   在 Behaviac.Design.Nodes.Node.GenerateNewLabel()
   在 Behaviac.Design.NodeViewData.GenerateNewLabel()
   在 Behaviac.Design.NodeViewDataStyled..ctor(NodeViewData parent, BehaviorNode rootBehavior, Node node, Pen borderPen, Brush backgroundBrush, String label, String description, Int32 minWidth, Int32 minHeight)
   在 Behaviac.Design.Nodes.Node.CreateNodeViewData(NodeViewData parent, BehaviorNode rootBehavior)
   在 Behaviac.Design.Nodes.Action.CreateNodeViewData(NodeViewData parent, BehaviorNode rootBehavior)
   在 Behaviac.Design.NodeViewData.DoSynchronizeWithNode(ProcessedBehaviors processedBehaviors)
   在 Behaviac.Design.NodeViewData.SynchronizeWithNode(ProcessedBehaviors processedBehaviors, Boolean bForce)
   在 Behaviac.Design.NodeViewData.SynchronizeWithNode(ProcessedBehaviors processedBehaviors, Boolean bForce)
   在 Behaviac.Design.NodeViewData.SynchronizeWithNode(ProcessedBehaviors processedBehaviors, Boolean bForce)
   在 Behaviac.Design.NodeViewData.SynchronizeWithNode(ProcessedBehaviors processedBehaviors, Boolean bForce)
   在 Behaviac.Design.NodeViewData.SynchronizeWithNode(ProcessedBehaviors processedBehaviors, Boolean bForce)
   在 Behaviac.Design.NodeLayoutManager.UpdateLayout(Graphics graphics, Boolean bForce)
   在 Behaviac.Design.BehaviorTreeView.OnPaint(PaintEventArgs e)
   在 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
   在 System.Windows.Forms.Control.WmPaint(Message& m)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** 已加载的程序集 **************
mscorlib
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.5485 (Win7SP1GDR.050727-5400)
    基本代码: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
BehaviacDesigner
    程序集版本: 3.5.9.0
    Win32 版本: 3.5.9
    基本代码: file:///D:/Program%20Files%20(x86)/behaviac/tools/designer/out/BehaviacDesigner.exe
----------------------------------------
BehaviacDesignerBase
    程序集版本: 1.0.0.0
    Win32 版本: 1.0.0.0
    基本代码: file:///D:/Program%20Files%20(x86)/behaviac/tools/designer/out/BehaviacDesignerBase.DLL
----------------------------------------
System.Windows.Forms
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.5491 (Win7SP1GDR.050727-5400)
    基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.8686 (QFE.050727-8600)
    基本代码: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.5495 (Win7SP1GDR.050727-5400)
    基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------

System.Configuration
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.5483 (Win7SP1GDR.050727-5400)
    基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.5494 (Win7SP1GDR.050727-5400)
    基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
oaaa4lw0
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.8686 (QFE.050727-8600)
    基本代码: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
mscorlib.resources
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.5485 (Win7SP1GDR.050727-5400)
    基本代码: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
PluginBehaviac
    程序集版本: 1.0.0.0
    Win32 版本: 1.0.0.0
    基本代码: file:///D:/Program%20Files%20(x86)/behaviac/tools/designer/out/PluginBehaviac.DLL
----------------------------------------
BehaviacDesignerBase.resources
    程序集版本: 1.0.0.0
    Win32 版本: 1.0.0.0
    基本代码: file:///D:/Program%20Files%20(x86)/behaviac/tools/designer/out/zh-CN/BehaviacDesignerBase.resources.DLL
----------------------------------------
WeifenLuo.WinFormsUI.Docking
    程序集版本: 2.5.0.34141
    Win32 版本: 2.5.0.0
    基本代码: file:///D:/Program%20Files%20(x86)/behaviac/tools/designer/out/WeifenLuo.WinFormsUI.Docking.DLL
----------------------------------------
BehaviacDesigner.resources
    程序集版本: 3.5.9.0
    Win32 版本: 3.5.9
    基本代码: file:///D:/Program%20Files%20(x86)/behaviac/tools/designer/out/zh-CN/BehaviacDesigner.resources.DLL
----------------------------------------
System.Windows.Forms.resources
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.5420 (Win7SP1.050727-5400)
    基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
PluginBehaviac.resources
    程序集版本: 1.0.0.0
    Win32 版本: 1.0.0.0
    基本代码: file:///D:/Program%20Files%20(x86)/behaviac/tools/designer/out/zh-CN/PluginBehaviac.resources.DLL
----------------------------------------
XMLPluginBehaviac
    程序集版本: 0.0.0.0
    Win32 版本: 0.0.0.0
    基本代码: file:///C:/Users/markhu/AppData/Local/Temp/Behaviac/XMLPluginBehaviac.dll
----------------------------------------
System.Management
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.5483 (Win7SP1GDR.050727-5400)
    基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Management/2.0.0.0__b03f5f7f11d50a3a/System.Management.dll
----------------------------------------

************** JIT 调试 **************
要启用实时(JIT)调试,
该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
jitDebugging 值。
编译应用程序时还必须启用
调试。

例如:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

启用 JIT 调试后,任何无法处理的异常
都将被发送到在此计算机上注册的 JIT 调试器,
而不是由此对话框处理。

image

如上图,调用playSkill

1个回答

0 喜欢 0 不喜欢
 
已采纳
这个情况你可以用记事本等工具直接打开该行为树的xml文件,找到节点ID为1的动作节点,删掉它,然后再在behaviac编辑器中正常打开该行为树,重新添加该动作节点,并选择配置你们的“释放技能”方法。
最新回答 9月 12, 2016 用户: cainhuang (33,810 分)
采纳于 9月 12, 2016 用户:kicchen
也就是说,游戏开发到后期如果需要重构战斗逻辑,修改了API名称或者参数,就需要重新构建相应的BT?

有没有办法能够提示错误信息,同时支持对行为树的xml文件在Designer中修改呢?
你们后期修改了API(改名或修改参数),重新导出元信息,然后对已有编辑好的行为树重新加载,编辑器会把用到该API的节点会自动置空,在你导出行为树或检查错误的时候,会提示该节点是空节点,你需要重新选择API就行。

你上面提到的换成enum类型,刚好这里做出了抛异常处理,我这边已经做了改进,等下一个新版本(3.5.14之后)会体验更友好一点。
好的 非常感谢
...