看了Ogitor的代码后, 自己又实践了一把, 结合N3中学到的一些技巧, 在编辑器中得到了验证.
虽说做的是场景编辑器, 但是其它编辑器也可以用的, 毕竟思想都差不多....对于一个编辑器, 通常是由一个个的"实体"组成, 或者叫"对象". 而"对象"又是由各种"属性"所组成....由此可以得出: 编辑器的一切操作都是属性编辑
实体不用说了, 相信每个引擎都有Model/Light/Sound之类的对象类.
那么怎么去定义一个属性呢?...文件读写
对象是属性组成, 那么只需要把属性保存下来即可....增删属性不用改动文件格式, 连版本号都省了
Undo/Redo
对于创建/删除操作, 备份该对象所有属性.
对于属性更改操作, 备份当前编辑属性.