美文网首页VR相关
VR开发--搭建UI框架(1)

VR开发--搭建UI框架(1)

作者: 元宇宙协会 | 来源:发表于2016-11-18 11:03 被阅读272次
    1、引言

    一般来说:我们做精美的界面,肯定是按部就班的拖UI控件,不停的引用来调用制作。但是随着我们掌握的熟练度,会发现一些类似的界面完全可以封装起来,而且通过进一步优化,就成为我们熟悉的框架,那么什么是UI框架?UI框架用来做什么?

    2、场景假设

    首先我们假设有两个面板,每个面板都有一个按钮
    我们通过按钮的点击来控制另一个画面的显示。
    Unity官方给出了很不错的建议。

    Paste_Image.png

    但是我们需要挂在两个脚本:

    脚本1:挂在登录面板上(这两种方法都可以)
    Paste_Image.png
    脚本2:挂在注册面板上
    Paste_Image.png
    1-优点:

    这样做,就完美达到一个控制另一个,交互显示的需求,而且脚本也中也比较干爽。
    注:方法二经过测试,对程序效率有明显的提升,而且逻辑更精确。

    1-问题:

    假如有很多个面板,那么我们脚本岂不是一大堆,每一个有联系的面板中都需要去进行修改,写一大堆没有营养的代码快线。

    2、解决问题

    用上面的方式,面板很少的情况下还可以,但是假如有很多面板呢?
    而且我们的界面不可能全部扔进场景中,我们需要热加载,或者动态加载。
    那么我们就需要UIManager来解决这些遇到的问题。

    Paste_Image.png

    将这个脚本挂在摄像机上,就可以控制两个面板的开启与关闭了


    Paste_Image.png

    当然要注册一下面板:

    Paste_Image.png
    2-优点

    这样做,确实也可以,脚本变成一个。

    3-问题

    我们还是需要一一指定相应的面板来进行控制,还是麻烦!

    3、大招
    3-1、将面板保存为一个个预制物,而通过Resources加载(动态加载)
    Paste_Image.png
    3-2、在我们的UI管理类中:提供方法来加载控制
    Paste_Image.png

    注:这里面的问题,下面3-6、会提出解决办法

    3-3、因为这个管理者是全局唯一的,所以采用单例模式
    Paste_Image.png

    最终效果:


    Paste_Image.png
    3-4、因为测试阶段,所以还是需要之前的面板脚本

    而在两个面板的脚本中


    Paste_Image.png

    Login


    Paste_Image.png

    Registe


    Paste_Image.png
    3-5、我们挂在相应的脚本,就可以发现成功了
    Paste_Image.png
    3-6、解决命名空间的问题

    首先我们添加命名空间,框架一般都是我们自己的,随时可以抽走,更换。所以我们都会加自己的命名空间!

    Paste_Image.png Paste_Image.png

    而这个时候,我们通过预制物加载,发现就找不到物体了
    打印输出:

    Paste_Image.png Paste_Image.png

    既然有了这个讨厌的命名空间,那就强拆

    Paste_Image.png

    结果一看,完美!


    Paste_Image.png

    相关文章

      网友评论

        本文标题:VR开发--搭建UI框架(1)

        本文链接:https://www.haomeiwen.com/subject/bbpjpttx.html