Unity的GUI系统在被开发以后,由于游戏平台的不同,在移植后很多玩家都觉得GUI和操作方式没有原版的顺手,玩起来没那么舒服。 首先,对于不同平台的触摸或者鼠标控制,想要用一套方案解决所有的问题是不太现实的,就像我们在电脑上可以把GUI做的细小,也不会让玩家看不见,但是如果是把这个大小的GUI放在手机屏幕上显然是不行的。 其次,游戏开发中的渲染,粒子,动画,特效等方面的技术都已经成熟很多年了,在不同的平台程序上的差异其实并不大,而他们之间的区别更多的是在资源上的一些限制,这跟GUI和目标的尺寸和操作方式和游戏设计有很大关系。 再者,一些经营或者建造类的的SLG的游戏主要部分就是在GUI上,但是,在ACT的动作游戏中GUI只是简单的提供信息,不通用的留有灵活的底层接口则允许用户自行定制,这也是Unity这种通用引擎的设计原则。在同样的部分形成一种模式,所以在Unity中其它部分显得比较整体,而GUI就显得比较落后,Unity中GUI系统当然是不可缺少的部分,只是被用户诟病的比较多,这类问题在未来的开发过程中还是亟待解决的。 最后,我们也知道在Unity中自行扩展GUI系统不是一件很难的事情,immediate风格GUI做数据驱动很方便。所以,在GUI的定制的设计方面,我们就可以分为三个方面来设计:配置文件格式,运行时数据结构,运行时数据结构与底层GUI API的关联。但是,为了实现这套GUI,就先得需要一套符合对其功能和语法要求的脚本系统,L#,由它衍生出的DSL便可做为配置文件。
|