编辑器框架的思考
为了将UI逻辑和编辑逻辑分离,我考虑一下方法:
1.UI使用脚本控制
2.抽象接口
第一种的话,可能本身实现也比较复杂,没一种UI都要实现脚本支持,可能需要自己写实现.而且,我以前看到的一片老外文章说引擎本身不提供脚本功能.呵呵,可能意思是到了游戏逻辑的时候才考虑脚本,这篇文章可以在GameRes上找到.
第二种,关键问题是如何做接口:
A 定义成最小接口的单独UI控件
B 抽象出编辑器需要的特定功能
A方案象太庞大太复杂了,等于把所有UI控件都封装一遍,然后这套UI接口可以用不同的库来实现,例如MFC,Xwindow等等,所有的逻辑都被隔离出来单独写,包括创建哪些风格UI之类的东西.
B方案,抽象出需要的UI类型, 比如模型选择UI,材质选择UI等等.这样的抽象更高级,但是可能需求变动比较大,接口会经常调整,对应的实现也要改.
A方案可以做到逻辑跟具体UI完全分离.我所理解的纯粹的MVC..呵呵.
但个人更偏重B方案,原因第一全部把UI抽象一遍,系统太庞大,工作量大不现实,而且现在已经有跨平台的UI库,可以直接用.第二这样做工作量小,即使要换一套UI实现,也比较容易.
它只是封装了UI的部分逻辑,但是编辑的逻辑还是分开出来的.
正在继续考虑中..