前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VR开发--搭建UI框架(1)

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

作者头像
孙寅
发布2020-06-02 17:36:20
6720
发布2020-06-02 17:36:20
举报
文章被收录于专栏:宜达数字宜达数字
1、引言

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

2、场景假设

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

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

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

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

1-问题:

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

2、解决问题

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

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

当然要注册一下面板:

2-优点

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

3-问题

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

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

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

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

最终效果:

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

而在两个面板的脚本中

Login

Registe

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

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

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

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

结果一看,完美!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、引言
  • 2、场景假设
    • 脚本1:挂在登录面板上(这两种方法都可以)
      • 脚本2:挂在注册面板上
        • 1-优点:
          • 1-问题:
          • 2、解决问题
            • 2-优点
              • 3-问题
              • 3、大招
                • 3-1、将面板保存为一个个预制物,而通过Resources加载(动态加载)
                  • 3-2、在我们的UI管理类中:提供方法来加载控制
                    • 3-3、因为这个管理者是全局唯一的,所以采用单例模式
                      • 3-4、因为测试阶段,所以还是需要之前的面板脚本
                        • 3-5、我们挂在相应的脚本,就可以发现成功了
                          • 3-6、解决命名空间的问题
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档