School StartsFirstProject~UnityVR(HTCVive设备开发)(一)

简介: School StartsFirstProject~UnityVR(HTCVive设备开发)

个人介绍


我叫XXX,今年上大二,主学游戏开发虚幻引擎、Unity引擎,在校期间开发了很多小Demo我严格要求自己,自觉、遵纪、守时。本人坦诚且有责任心,有独立进取的品性,勤于动手、善于动脑,适应新环境能力很强。能够在最短时间内完成从学生到职业工作人员的转型,尽自己最大的努力融入新的工作生活。

新学期目标


①:学好新学期课程,好好学习天天向上💪

②:参加VR虚拟现实比赛

③:继续提升学历~争取考公务员💪

④:程序员坚持每天锻炼💪

1.gif

⑤:image.png

项目准备与介绍


前期准备如下:

①:SteamVR下载步骤 : 下载Steam链接 → 下载SteamVR1.2.2

②:VRTK3.2.1下载 :下载链接

项目介绍

☺:课程使用HTC Vive设备开发,使用 SteamVR1.2.2 和 VRTK3.2.1 版本开发。

☺:将游乐项目在VR里体验,使用新版VRTK实现了射线与UI的交互、新版VRTK的使用。

设备模样


image.png

设备图:

image.png

实现效果如下


image.png

导入素材


资源:image.png

SteamVR:image.png

VRTK:image.png

夸克网盘下载 ☑:下载链接

提取码:PCks

导入+ 创建相关文件夹如下图:

image.png

image.png

开始页UI简单搭建


image.png

效果如下:

image.png

开发步骤


1、使用预制体 Galaxy:


image.png

2、调整 Galaxy 和 SteamVR摄像机


如下图所示:

image.png

3、使用SteamVR摄像机


image.png

image.png

4、VR模拟UI界面搭建效果图如下:


1.摄像机使用世界坐标:

image.png

2.创建UI调整

image.png

image.png

5、VRTK 3.2.1v的相关使用


1.创建VRTK(添加VRTK_SDK Manager) 👉 创建空GameObject (添加VRTK_SDK Setup组件)

如👇:

image.png

6、手臂发射射线


要与UI交互需要添加 3个组件:

image.png

把renderer添加到PointerRenderer如下:

image.png

添加右手炳到RightController

image.png

效果如下:

image.png

7、UI交互


image.png

image.png

image.png

效果如 👇:

image.png

bug(射线移进Canvas就会碰撞检测)

image.png

解决如下:

image.png

射线与UI碰撞的原理如下:

image.png

检测自带的碰撞体与刚体如下:

image.png

效果如下:

image.png

8、射线触发UI播放对于的视频


image.png

9、创建LodingPageUI


效果如下:

image.png

10、完成过山车场景


image.png

7.png

VR设画面如下:

image.png

10.1、车到达终点播放声音


如下图:

image.png

11、托马斯场景泪水过山车


image.png

VR场景如下:

image.png

开发相关脚本


StartPage 脚本


实现的功能:开始结束按钮的相关逻辑

usingUnityEngine;
usingUnityEngine.UI;
usingUnityEngine.SceneManagement;
publicclassStartPage : MonoBehaviour {
//结束按钮privateButtonstartBut;
//退出按钮privateButtonexitBut;
privatevoidAwake()
  {
//获取相关组件startBut=transform.Find("StartBut").GetComponent<Button>();
exitBut=transform.Find("EquitBut").GetComponent<Button>();
  }
privatevoidStart()
  {
//开始按钮绑定相关事件startBut.onClick.AddListener(() =>    {
SceneManager.LoadScene("Scene2");
    });
//结束按钮绑定相关事件exitBut.onClick.AddListener(() =>    {
Application.Quit();
    });
  }
}



相关文章
|
6天前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
44 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
1799 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
|
6天前
|
数据采集 测试技术
LabVIEW对Table中同一行数据分多次增加
LabVIEW对Table中同一行数据分多次增加
13 1
|
8月前
|
Linux C++
基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
84 0
|
API 图形学
U3D客户端框架之封装 DeviceUtil 获取设备唯一ID和设备型号
U3D客户端框架之封装 DeviceUtil 获取设备唯一ID和设备型号
硬件开发笔记(十): 硬件开发基本流程,制作一个USB转RS232的模块(九):创建CH340G/MAX232封装库sop-16并关联原理图元器件
有了原理图,可以设计硬件PCB,在设计PCB之间还有一个协同优先动作,就是映射封装,原理图库的元器件我们是自己设计的。为了更好的表述封装设计过程,本文描述了CH340G和MAX232芯片封装创建(SOP-16),并将原理图的元器件关联引脚封装。
硬件开发笔记(十): 硬件开发基本流程,制作一个USB转RS232的模块(九):创建CH340G/MAX232封装库sop-16并关联原理图元器件
|
传感器 芯片
硬件开发笔记(七): 硬件开发基本流程,制作一个USB转RS232的模块(六):创建0603封装并关联原理图元器件
有了原理图,可以设计硬件PCB,在设计PCB之间还有一个协同优先动作,就是映射封装,原理图库的元器件我们是自己设计的。为了更好的表述封装设计过程,本文描述了贴片电阻电容0603芯片封装,创建贴片焊盘,关将原理图的元器件关联引脚封装。
硬件开发笔记(七): 硬件开发基本流程,制作一个USB转RS232的模块(六):创建0603封装并关联原理图元器件
硬件开发笔记(五): 硬件开发基本流程,制作一个USB转RS232的模块(四):创建CON连接器件封装并关联原理图元器件
有了原理图,可以设计硬件PCB,在设计PCB之间还有一个协同优先动作,就是映射封装,原理图库的元器件我们是自己设计的。为了更好的表述封装设计过程,本文描述了一个创建CON标准连接件封装,创建DIP焊盘,将原理图的元器件关联引脚封装。
硬件开发笔记(五): 硬件开发基本流程,制作一个USB转RS232的模块(四):创建CON连接器件封装并关联原理图元器件
|
算法 JavaScript 程序员
我的Go+语言初体验——环境搭建篇(直男程序员的真实体验)
我的Go+语言初体验——环境搭建篇(直男程序员的真实体验)
我的Go+语言初体验——环境搭建篇(直男程序员的真实体验)