|
uod18有一篇介绍编辑器开发的教程。涵盖了基本api的使用。
但是如你所说,slate的编辑器扩展有诸多不便。
首先那套operator[]重载的操作就很难受。
为了效率有几条路可以走:
1.不想依赖cpp扩展的话 可以用EditorUtilityBlueprintClass和EditorUtilityWidget,可以在UE端用UMG和蓝图完成工具类扩展。
2.slate对于大量物体的渲染存在性能问题,这就是为什么存放foliage的那个AInstancedFoliage Actor在编辑器是隐藏的,因为如果你选中了 光是detail面板绘制instance transform ui可能就会卡好几分钟。所以不妨用UE自带的pythonscriptplugin插件,它利用了UE自带的反射特性,将UProperty和UFunction都导出到python了,那么所有工具的逻辑完全可以在python完成,对于做打包前cook定制工具,commandlet测试等 都很方便 毕竟是解释执行。
3.同样是利用了UE的反射机制,现在也有不少通过第三方扩展比方说react,vue,或者electron这些web技术完成编辑器开发。至少不会卡主线程。效率还高。内置编辑器这块缺点也很明显 slate加载引用的资源释放时,会跑GC,大项目很卡。有可能崩在某个奇怪角落的蓝图空指针。 |
|