【IdeaVR2019快捷操作(五)】python代码介绍

五 Python代码介绍


5.1python封装源工程文件

IdeaVR2019内置一万多行的IVREngine.py文件,其中包括对
交互编辑器、节点,数学等内容的操作详解。采用class类进行封装。
如下图所示。
在这里插入图片描述
在这里插入图片描述

5.2 UI界面原理介绍及代码详解

5.2.1 UI界面介绍

UI界面即你的窗口,你的窗口是三维模型的投影,是一个平面,即类似于window桌面,软件打开有不同的界面,而你只有一个显示屏展示出来。也就是说你的UI窗口也只不过是你的三维模型在不同视角的投影而已。具体可以参考计算机图形学投影章节。
那这样说的话,我们就可以像在tkinter或者pyqt那样去设计我们的ui界面,而内置的源代码库也刚好提供了UI界面设计的控件。

5.2.2 UI界面与VR设备使用的区别

UI界面是用于与计算机进行交互的界面,UI界面的设计及其按钮的任何功能是不能再VR设备连接时显示出来的,或者说在连接VR设备的时候是不能用手柄来控制的,比如说你设计了一个登陆界面,当你接入VR设备进行使用时,UI界面是不会展示出来的。
那如果我想在VR设备里面进行设置时应该怎么办呢,在IdeaVR2019软件中可以利用按钮实现此功能,通过新建按钮并将其设置为布告板,点击时使得另一个节点显隐等,之后python的功能函数通过检测该节点的显影性来运行即可,当然也有其他相应的办法,还请读者根据API源文档查找并选择使用,或者查看IVREngine.py文件即可。

5.2.3登陆界面UI设计介绍

(1)登录界面介绍
用户可以在用户名和密码栏来输入用户名和密码,后台会读取内置的保存密码库判断用户名和密码是否正确,正确的话就删除登陆界面来启动VR系统,错误的话会提示用户名和密码错误,需要重新输入用户名和密码。如图所示:
在这里插入图片描述

该界面主要分为三个部分,第一个部分背景图片主要用 WidgetSpirte 来完成。 第二个部分登录的账号和密码输入框,主要是使用 WidgetEditLine 来接受用户的输入,第三部分是点击功能函数的实现。
首先需要创建一个脚本,直接从交互编辑器左边的逻辑单元拖入一个绑定节点类型的脚本单元到交互编辑器中,名称命名为 Login_page。然后双击脚本单元图标开始编写脚本程序。
由于登录界面不需要绑定任何节点,所以可以把 OnGUI 函数去掉,增加 Start 函数(主要用来初始化 UI 界面)和 OnDestroy 函数(主要用来释放相关的资源)。如图所示。
在这里插入图片描述
之后获取 UI 界面,根据渲染窗口的大小设置 UI 背景的大小,如图代码就是获取渲染窗口的宽度和高度。
在这里插入图片描述

在获取窗口的宽度和高度完毕后,就可以创建登录界面的背景了,在创建之前,需要使用 IVREngine.engineGUI()这个接口,这个接口可以使得为了能让创建的 UI 显示在渲染窗口上,需要将对应的控件作为 IVREngine.engineGUI()的子节点。所以在创建 UI 之前,需要获取engineGUI。同时我们也需要获取场景路径,用来搜索需要使用的图片资源。如图所示
在这里插入图片描述

完成以上所有配置之后,需要给自己的登陆界面设置场景,主要使用WidgetSprite对象,WidgetSprite可以用来展示背景界面并设置相应大小。
在这里插入图片描述

其中第四行是四元数,用于设置颜色及透明度在背景之上需要创建用户输入框,用户名输入框需要接受用户的输入,IVREngine 中的 WidgetEditLIne 可以实现这个功能,由于 WidgetEditLine 自带的背景有点简单,所以我们还需要自己制作一个背景,作为输入框的背景,同样的,在这里背景用 WidgetSprite来制作,为了能把输入框和背景融合在一起,还需要用到WidgetHBox,这个就是横向布局,相当于一行,对应的还用纵向布局,相当于一列,对应的控件是 WidgetVBox,纵向布局。这里我们使用 WidgetHBox。
在这里插入图片描述

上面的代码就是用来设置用户名输入框的,设置输入的字体大小(高度会自适应文字 大小),宽度,颜色等等,为了设置自定义的背景,通过 setBackground 取消原来的背景。最后将背景和输入空都放置在 WidgetHbox 。其中上图代码的第二行,通过这个设置输入框的触发函数,第一个参数表示什么时候会触发,本例中设置的是通过鼠标单击触发,后面的参数是触发之后执行的动作(函数),在设置触发动作的时候需要配合 IVREngine.createWidgetCallback()来使用,触发函数的定义如图所示。表示在用户单击输入框的时候,将原来的内容置为空,后面一句是将提示信息置为空。
在这里插入图片描述

上面这些就是用户名输入框的 python 实现,密码的输入框实现基本和这个差不多,有些地方有些差别,这里说一下触发函数,在输入密码的时候,可以通过setPassword(1)开启密码格式(字符会以加密的形式显示)。

在这里插入图片描述

登录按钮的布局也是先制作一个按钮,然后自定义自己的背景。登录界面是通过单击登录按钮进入 VR 场景的,在开始设置登录场景的触发函数之前,需要先获取系统的用户名和密码,在本例中是通过读取文本文件中预设的用户名和密码来实现的, 下图这段代码就是解析文本文件,将密码保存起来。
在这里插入图片描述

有了上面的用户名和密码,就可以实现按钮的触发函数。在用户名和密码对应上之后 释放 UI 对应的资源,如果是错了则输出提示信息。
图3.5.11  登录按钮功能函数
在对上面功能讲解之后,基本可以实现对内置模板的阅读、修改,如果有时间,还可以对新的功能进行探索。计算机图形学是基础,开发过程中建议参考。

六、结语

至此本系列所有文章已经结束,它并不是一个基础教程,基础教程还请参考内置帮助文档。这个教程更像是一个进阶课,来帮助学弟学妹们少走一些弯路,避开一些坑,把更多的精力放在功能开发上面。祝愿每个开发项目的人员顺利完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值