我在给一个UStateTreeAIComponent配置StateTreeRef的时候发现,下拉菜单里只有指定Schema类型(也就是UStateTreeAIComponentSchema)的StateTree。我新建了一个蓝图类型BP_StateTreeSchema继承自UStateTreAIComponentSchema,使用了这个蓝图Schema的StateTree并不会显示在下拉菜单里。根据代码StateTreeReferenceDetials.cpp : 135也可以看到,StateTree会把他使用的Schema类型作为Tag放在AssetData里,而过滤的逻辑就是直接对比类型的字符串,所以子类Schema都会被排除。我知道用AssetTag是为了避免加载这些StateTree,但是能否有其他办法能让子类也显示出来呢?
你好,我本地测量下似乎是可以的,你要不上传个重现视频看下?
视频里展示了如下流程:
- 先继承一个UStateTreeAIComponentSchema的子类UTestStateTreeSchema出来
- 新建一个StateTree使用这个UTestStateTreeSchema
- 新建一个PlayerController加上UStateTreeAIComponent,可以看到它并不能选择我们新建的StateTree
这个问题已经确认,预计会在后面版本中修复UE-352048,感谢反馈~