找回密码
 点一下
查看: 2002|回复: 7

对于编辑器继承的不爽

[复制链接]
发表于 2010-9-29 18:27:54 | 显示全部楼层 |阅读模式
Base On就是继承吧


我记得XML里面,子类无需指明父类的具体数据,因为是继承关系,所以哪怕子类内容是空的,实际上也是和父类一样,当改变父类的数据时,子类那些没有覆盖的数据也会一同改变


但是编辑器不是这样,子类继承父类,之后子类中会诞生和父类一模一样的信息,原理却是复制。我虽然没有看过相应的XML的内容,但是当我修改父类的时候,子类还是父类以前的内容,保存重载依然如此。诚然,子类的Reset To Parent Value就可以同步了,但大范围的这种手动同步是很愚蠢的。所以有了父类的Apply Value To Children,减少了手动同步的次数,但是,说到底,这背离了继承的初衷,这个继承不过是建立了一个关系,可以使用Reset To Parent Value或Apply Value To Children进行同步,但是,假如你给GenericUnitBase的Event使用Apply Value To Children,你去看看他的孩子们,整个一悲惨世界。


当然也有一些编辑器的小Bug,例如,如果在编辑器的左侧对整个对象进行“Reset Object To Parent”操作,别说独有内容,连名字也会变得跟父类一样,虽然这个名字Bug重载后就好了,但是子类的其它信息只能回炉了。


然而另一个就是欺师灭祖的重罪了,找到子类的Editor Name,然后Reset To Parent Value,不管Re了谁,子类的名字都不会变,但是,相应的父类名字却变成了他的。这个Bug仿佛就是在讥讽暴雪——你坑爹呢!
发表于 2010-9-29 18:43:35 | 显示全部楼层
那就用xml。数据编辑器可没承诺过要和xml一样。其实就我看来,完全发挥这个XML系统优势,界面却像WE对象编辑器这样编辑器几乎是不可能做出来的。

数据编辑器不要遵循XML的设计原则,正如触发编辑器和Galaxy的设计原则完全不同。实际上如果数据编辑器采用XML那套复杂继承方案,只会让更多人看不懂。

另外Editor Name与继承实际上毫无关系。Editor Name其实是保存在Game String.txt里的。在整个XML结构里并不存在这类属性。
回复

使用道具 举报

发表于 2010-9-29 19:21:22 | 显示全部楼层
实际上我是希望有人能做个文本编辑器完全发挥XML的继承体系优势的。不过我自己又灭那个时间啊。
回复

使用道具 举报

发表于 2010-9-29 19:29:30 | 显示全部楼层
曾经想过做做看,不过精力有限的说~
回复

使用道具 举报

 楼主| 发表于 2010-9-29 20:58:11 | 显示全部楼层
你们真该去中500万..
回复

使用道具 举报

发表于 2010-9-29 21:42:07 | 显示全部楼层
不明

500万和这个有虾米关系呢?~~
回复

使用道具 举报

发表于 2010-9-29 21:55:09 | 显示全部楼层
中了500万就可以闲下来喝茶、写代码了吧。
回复

使用道具 举报

发表于 2010-10-3 18:43:27 | 显示全部楼层
我中了500W……就可以安心填坑了……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-23 13:58 , Processed in 0.057114 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表