(个人)AR电子书系统创新实训第三周(2)
来源:互联网 发布:saber软件百度云 编辑:程序博客网 时间:2024/06/05 07:38
上一篇我介绍了相关控件的搭建以及sprite的处理,在这一篇我将介绍各个控件的组织以及相关的实现代码。
1、“设置”弹窗及按钮实现
- 在上篇博文中我已经介绍了如何建立“弹窗”图片这里就不再赘述
- 弹窗是可开可关的,因此需要建立脚本SettingPopup.cs,分别建立Close()和Open()函数对其进行控制,具体代码如下:
public void Open() { gameObject.SetActive(true); } public void Close() { gameObject.SetActive(false); }
- 只有函数是不可行的,我们还必须有调用它的接口,所以我在“MainMenu”上添加了脚本UIController.cs,在这个脚本中添加调用SettingPopup.cs函数的代码,具体代码如下:
[SerializeField] private SettingsPopup settingsPopup;//弹窗槽void Start(){ settingsPopup.Close();//默认关闭弹窗} public void OnOpenSettings(){ settingsPopup.Open();}
- 在“MainMenu”中的脚本栏关联上SetPopup组件
- 由于是点击“set”按钮才会出现弹窗,而我建立的set按钮是图片,因此需要另外添加“Button”组件,在“Inspector”界面底部点击“Add Component”选择“Button”,在Button中的OnClick将SetPopup组件进行关联,并选择SettingPopup.open函数。具体设置如下图:
这样点击set按钮就会出现弹窗了
注意:是将整个setPopup组件关联到OnClick中,而不是SettingPopup.cs代码关联到OnClick中!(我因为关联错了浪费了半个多小时在找问题……) - 如何关闭弹窗呢,同理,在setPopup中添加close按钮进行上一步的操作,唯一的区别是现在选择SettingPopup.close函数,具体设置如下图:
这样我就实现了弹窗的操作,由于编辑器不太方便我就不贴图了,等最终UI图标都设计好了之后在放图。
2、“返回”按钮实现
- 建立“返回”图标:通过GameObject->UI->Image新建Image,重命名为“back”,将back图片拖入SourceImage
- 按钮响应功能:由于我建立的返回图标是图片,因此需要另外添加“Button”组件,在“Inspector”界面底部点击“Add Component”选择“Button”,在Button中的OnClick进行当前界面与开始界面的切换,具体实现方法键创新实现第二周(2),主要设置见下图:
3、宣传片UI功能实现
宣传片功能是点击该按钮,开始界面消失并显示HUD、播放宣传片。
- 开始界面消失并显示HUD的处理方法与之前的相同,就不再赘述
- 导入宣传片:Unity中能够识别的视频格式主要有:.mov, .mpg, .mpeg, .mp4, .avi, .asf,保证视频转码的顺利完成,我们还必须安装Quicktimeplayer工具,用于视频的转码
- 按照要求,我安装了Quicktime player之后,将视频test.mp4通过拖拽导入到Unity中,结果提示:“Movie importing requires Quicktime to be installed…”这样的错误,这是因为Unity对于Quicktime player的依赖还没有生效
- 通过查询我才知道,导入Unity的视频最后都被转码为.ogv格式,这是Unity能够直接识别的格式!
- 费尽千辛万苦我找到了一个这样子的视频格式转码工具,能够将其他格式的视频转码为Unity能够直接识别的.ogv格式,而且不依赖于Quicktime player,这个工具是:TheoraConverter
- 经过一系列的视频格式转换,我的视频终于能在unity中播放了
- 接下来需要通过代码进行视频播放的控制,在Hierarchy视图中创建一个Plane对象视频将在它之上播放(当然也可以直接挂着camera上,但鉴于后期维护还是另建Plane对象比较好)。创建代码如下:
//电影纹理public MovieTexture movTexture; void Start() { //设置电影纹理播放模式为循环 movTexture.loop = false;} void OnGUI(){ //绘制电影纹理 GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), movTexture, ScaleMode.StretchToFill); }
这样视频就能有控制的播放了。
4、扫一扫UI功能实现
扫一扫功能是点击该按钮,开始界面消失并显示HUD,并且打开摄像头进行AR识别操作(这一部分由组里的其他成员完成)。关于开始界面消失并显示HUD的处理方法与之前的相同,就不再赘述。
5、使用说明UI功能实现
这一部分的实现与“设置”的弹窗界面类似,唯一的不同就是设置界面当点击close按钮之后,界面返回原界面;而使用说明的弹窗是当点击close按钮之后界面要返回开始界面,因此我在“使用说明”上新建SettingUsePopup.cs脚本,在其中建立BackGround对象,将开始界面关联到该对象上,通过代码对界面进行显示与隐藏操作,具体实现代码如下:
public GameObject background; public void Open() { gameObject.SetActive(true); background.SetActive(false); } public void Close() { gameObject.SetActive(false); background.SetActive(true); }
这样基本的框架就搭建好了,下一周我将会详细叙述UI按钮的设计过程。
阅读全文
0 0
- (个人)AR电子书系统创新实训第三周(2)
- (个人)AR电子书系统创新实训第三周(2)
- (个人)AR电子书创新系统实训第三周(2)
- (个人)AR电子书系统创新实训第三周(2)
- (个人)AR电子书系统创新实训第三周(2)
- (个人)AR电子书系统创新实训第六周
- (个人)AR电子书系统创新实训第三周(1)
- (个人)AR电子书系统创新实训第三周(1)
- (个人)AR电子书系统创新实训第三周(1)
- (个人)AR电子书创新系统实训第三周(1)
- (个人)AR电子书系统创新实训第三周(1)
- (个人)AR电子书系统创新实训中期总结
- (个人)AR电子书系统创新实训期中汇报
- (个人)AR电子书系统创新实训第二周(2)
- (个人)AR电子书系统创新实训第二周(2)
- (个人)AR电子书系统创新实训第二周(2)
- (个人)AR电子书系统创新实训第二周(2)
- (个人)AR电子书系统创新实训第二周(2)
- JS高级---原型到原型链(一看就懂)
- opencv 鼠标操作 裁剪图片
- Linux下Memcache服务器端的安装
- oracle中关于undo表空间的使用
- Ajax
- (个人)AR电子书系统创新实训第三周(2)
- cigarettes
- log4j配置
- Secondary NameNode:它究竟有什么作用?(转自:http://blog.csdn.net/xh16319/article/details/31375197)
- Git 上传文件、文件夹、项目到 Github
- HttpClient获取Cookie的两种方式
- 淘淘商城系列——dubbo监控中心
- Java中this关键字的详解
- ASP.NET 母版页学习记录