【三星官方教程】如何为Gear VR开发应用(五):添加功能

2023-10-14 08:40

本文主要是介绍【三星官方教程】如何为Gear VR开发应用(五):添加功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在两个场景都已经制作完成,可以在照片查看器中加入一些功能了。这个应用中使用射线系统,从镜头发出射线,与场景中的物件发生碰撞。碰撞会检测到某些标记,从而通知系统运行一些特定的动作。这个应用里的主要功能包括前进,后退功能,以及播放幻灯。

在这期教程中,你将学到:

·建立射线以触发某个按钮

·建立一个用来瞄准按钮的准星

·建立一个对象,用来管理用户的输入,比如点击或触摸

·建立一个对象,当某个按钮被触发后,通知应用循环播放一系列不同的背景

·建立并实施对象的标签

·用脚本控制循环播放的属性,如时长和模式

·将图片载入球面

·在GearVR 上创建并运行完成后的app

 

1)使用替代场景

建议用前几期教程中制作的启动场景和主场景作为本期教程的起点。但如果你想用一个干净的文件来开始本期教程,也可以使用Unity自带的替代场景。

A.返回Unity,关闭Build Settings窗口。

B.Project窗口,找到/Assets/Workshop/Scenes/CatchUpScenes文件夹,打开 3_Main.unity 文件。

C.在菜单中,选择File > Save Scene as…。在Save Scene对话框,将文件名设为Main.unity并保存到/Assets/Workshop/Scenes文件夹。选择覆盖现有的Main.unity文件。

D.Project窗口,找到/Assets/Workshop/Scenes/CatchUpScenes文件夹,打开3_Splash.unity

E.在菜单中,选择File > Save Scene as…。在Save Scene对话框,将文件名设为Splash.unity并保存到/Assets/Workshop/Scenes文件夹。选择覆盖现有的Splash.unity文件。

 

2)为镜头加上射线

A.返回Unity,打开Main.unity文件。

B.Hierarchy窗口,选择OVRCameraRig>TrackingSpace>CenterEyeAnchor

C.选择Create > Create Empty Child


D.Inspector窗口,将空对象的名字改为Raycaster

E.点击Add Component按钮,选择Scripts >Raycaster。这样你就可以向一个目标发出射线。


 

3)为镜头加上准星

A.Hierarchy窗口,选择Create > 2D Object > Sprite

B.New Sprite拖到OVRCameraRig>TrackingSpace>CenterEyeAnchor中。


C.Inspector窗口,将Sprite的名字改为Reticle

D.有些对象会被放在不易找到的地方,而在场景中,很难精确地吧对象放在某个地方。在Transform部分,点击齿轮图标,选择Reset。这样可以把对象放在 (000)


E.Project窗口,打开/Assets/Workshop/Textures文件夹,把Reticle文件拖到Inspector窗口中的Sprite Renderer > Sprite输入框。


F.Transform部分,将PositionZ设为5。准星因位于播放幻灯按钮的正前方。

G.Scales XY,和Z设为0.1


H.点击Add Component按钮并选择Scripts > Reticle。这会使射线的轨迹遵循准星的位置。

I.Reticle部分,将Pressed Color设为绿色。


J.点击Play按钮预览场景。你应该可以看到播放幻灯按钮前面显示了白色的准星。

K.再次点击Play按钮退出预览。

 

4)创建InputManager对象

A.Hierarchy窗口,选择Create > Create Empty

B.Inspector窗口,将空对象的名字改为InputManager。这个对象是用来检测用户输入的。

C.点击Add Component按钮,选择 Scripts > Input Manager。当某个对象被轻触,Is Pressed的属性会在onoff 间切换。


 

5)创建Createthe AppManager

A.Hierarchy窗口,右击InputManager,选择Duplicate

B.Inspector窗口,将InputManager (1)的名字改为AppManager。这个对象用来通知系统对用户的输入采取什么反应。

C.Input Manager部分,选择Script输入框边上的target 按钮。在SelectMonoScript窗口,找到并选择ApplicationManager脚本。


当用户触动某个按钮,场景的背景材质会切换。所有的三个按钮都会打上标签,告诉app每个按钮的功能。例如:如果Button_Advance被触动,背景会切换到下一张材质。

 

6)定义对象标签

A.在菜单中,选择Edit > Project Settings > Tags andLayers

B.Inspector窗口,展开Tags部分。

C.点击Add (+) 按钮增加一个标签。将Tag 0内容设为IncrementButton

D.再增加两个标签,并设为如下内容:

Tag 1: DecremenButton

Tag 2: SlideshowButton

说明:IncrementButtonDecrementButton,和SlideshowButton这三个标签是专门为我们这个教程创建的,在这个app里一定要用到。如果你用其它标签,或名字拼写错误,app里的按钮将无法正常工作。


E.Hierarchy窗口,选择Buttons >Button_Advance

F.Inspector 窗口,将Tag的属性改为IncrementButton


G.下一步,将Button_Slideshow的标签改为SlideshowButton,将Button_Decrement的标签改为DecrementButton

H.保存场景。

 

7)加入TextureCycler脚本

A.Hierarchy窗口,选择AppManager

B.Inspector窗口,找到Application Manager 部分并展开Texture Object 分支。

Texture Object 的属性通知系统切换某个对象的材质。在这里,我们需要Sphere_Inv的材质随着点击按钮而切换。

C.Hierarchy窗口,将Sphere_Inv拖到Element 0


D.Hierarchy窗口,选择Sphere_Inv

E.Inspector窗口,点击Add Component按钮并选择Scripts > Texture Cycler。这一步指定了主场景中的起始材质,以及在slideshow模式下每张图片显示的时长。


 

8)创建TextureLoader对象

A.Hierarchy窗口,选择Create > Create Empty

B.Inspector窗口,将这个空对象的名称改为TextureLoader

这个对象告诉系统将哪些材质载入到AppManager Texture Object (在这里,我们使用wSphere_Inv)

C.点击Add Component按钮并选择Scripts > Texture Loader

D.Texture Loader部分,展开MStartingTextures

App Manager Texture Object中的材质可以切换后,这个脚本会先调用MStarting Textures (缺省的大小为1)MStarting Textures中的材质都用过之后,Texture Loader会载入MLocal Storage Dir Path中的PNGJPG文件。

E.MStarting Textures部分,将Size的数值改为3


F.Project窗口,打开/Assets/Workshop/Textures文件夹。你可以看到一些前缀为 “360” 的图片 (e.g.360_BritishColumbia.jpg)。挑选三张图片,把他们拖到三个Element的输入框里。


G.Texture Loader分支,找到MLocal Storage Dir Path并输入以下路径(必须完全按下面的路径输入)。这会告诉app你本地的360度图片在哪里。这里app会在手机根目录下找到名为 “Workshop”的文件夹。

/mnt/sdcard/Workshop/


说明:你需要在手机上创建Workshop 文件夹。可以打开手机上的My Files应用,点击Device storage > Menu >CreateFolder,创建Workshop文件夹。如果你有360图片想用这个app查看,只要把图片加到这个文件夹里,app会自动到这个文件夹里查看。

H.保存场景。

 

9)创建并运行这个应用

A.在菜单中,选择File > Build Settings…

B.Build Settings窗口,确认Scenes In Build中依次排列着以下两个文件:

Workshop/Scenes/Splash.unity(0)

Workshop/Scenes/Main.unity(1)

C.确认Platform设为AndroidTexture Compression设为ETC2 (GLES 3.0)

D.将手机用USB连接到电脑,并点击Build & Run按钮。

E.Build Android对话框,给APK文件取名并点击Save

F.Unity创建好app后,你会在手机上看到Insert device 对话框。这时可以断开与电脑的连接,将手机插入Gear VR运行你的场景。

这篇关于【三星官方教程】如何为Gear VR开发应用(五):添加功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209377

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof