纳金网

标题: unity之新的GUI [打印本页]

作者: yeu1233    时间: 2012-8-21 11:58
标题: unity之新的GUI
     大多数unity用户正在尝试安装4.0的时候,我们有一个专门的团队正在为后面的版本准备我们新的GUI了。我们觉得是时候来分享下它的一些细节了。为了能让你了解我们正在研究的东西,这里我花了一天时间整合了一个简单的测试。

基本知识
    制作游戏GUI的时候,所有关于控件外观(或者音效)上应该如何的设想都在这个窗口之外实现。对我们来说给你提供充分的灵活性是非常重要,这里我们的方案是使用动画。让我们来看一个(极其简单的)按钮。


    这个按钮由三个元素组成:背景图像、轮廓和标签。在新的GUI编辑器中,这些将由不同的元素来制作。
    这将是非常强大的,因为它允许你为每个元素做独立的动画。根对象上的按钮组件播放它的子级相应用户行为的动画。每一个动画都会激活游戏对象的层级,所以如果你想要添加一个悬停音效,只需要简单地在录制悬停状态的时候将一个片段拖进GUI编辑器,不需要任何代码。



   



定位
    我们总是竭尽所能是你在使用unity的时候尽可能的顺利些。这在新的GUI系统中也有体现,我们从新构建了一个完整的编辑器。只需要简单地将你临时组装的按钮拖进GUI编辑器中,移动他们,调整大小,重设父级,添加动画。有一些很喜欢的UI控件回头还需要使用?那就把它们拖到工具栏中,它们就会一直保持在内置的UI控件旁边——随时待命。为了增加布局的灵活性,我们的控件采用了苹果的缩放模型。每个GUI元素都有一个与他的父级关联的本地尺寸和一个由指示如何处理父级尺寸改变的调整标志组成的集合。与父级相结合,这是一个很棒的处理现代化设备的不同长宽比的方式。为了能更容易支持视网膜显示器,这套GUI系统还有一个主要的比例因子。





3D GUI
       3D组可以使你的UI元素全方位转换,这对在你的设计中创建深度是非常有用的。你可以在雷达元素中看到它的运用,每个blib都是带三维动画的独立对象。你看到的右边那幅图片是在GUI编辑器中生成的,没有涉及到代码。


排序
    时间轴视口提供了显示控件的项目渲染顺序。最上层的(惊喜!)在顶部,你可以很方便地在时间轴上上下拖动项目。任何在GUI中使用的纹理都会被自动做atlas处理(PS:大概就是为了减少场景中使用的材质数量,对仅纹理不同的材质把纹理组合到一张更大的纹理中这样一个过程吧)。为了尽量减少draw calls(在Unity中,每次引擎准备数据并通知GPU的过程称为一次Draw Call。PS:这个是我网上找的,看着像这个意思==!),我们采用动态监测重叠,并且利用它来得出哪些元素我们可以在不造成深度变化的情况下切换。在本帖顶部显示的GUI是在5个draw calls中渲染的。

控件
    新的GUI系统,将推出一系列标准的内置控件,以及微调手机游戏摇杆控件。这个GUI系统包括对多点触控的完全支持。为了响应,例如,一个用户按钮的press交互,你可以简单地拖进一个游戏对象,并选择要调用哪个方法。从C#方面来说,这仅仅是一个委派,所以你也可以利用代码实现这一切。所有的内置组件都是完全可编译的。如果你想制作你自己的控件,你可以从GUIBehaviour中派生出来。这个可以使你得到OnMouseOver,OnMouseOut, OnKeyDown, OnMouseDown,等的回调。我们的所有控件都在使用动画的时候都具有充分的灵活性,所以你可以模仿——或者你利用代码做更多的任何事。
      我这里就是这些了。利用一天时间制作一个感觉充满创意和乐趣的GUI让我非常兴奋。我会用这些动力来修改这个小东西的一些bug——这样我们就可以把它给你们使用了。如果你有任何关于功能或细节的疑问,请在下面回复,我会尽我所能回答这些问题!
原文链接:http://bbs.9ria.com/thread-136489-1-1.html




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5