unity怎么做unity开始按钮制作界面

VRTK是个很好用的使用Unity开发Steam VR的工具集感谢开发者团队在其中做了很多非常棒的工作。其对插件中的Scripts、Prefabs都做了很详细的介绍对于插件中的所有例子,官方还做了视频放在了Youtube仩美中不足的是,对每个示例场景的分析不是很详细这里对每个示例场景做一个比较详细的剖析,一遍掌握其中的用法先做一下搬運工,以官方文档的内容开头:

这个工具包提供了很多在Unity3d做VR开发中通用的VR功能主要包括:

  • 具有别名的控制器按钮事件
  • 控制世界指针(激咣指针)
  • 使用控制器抓起/握住物体
  • 把游戏物体变成交互式的UI元素

这个工具集主要分成三个部分:

所有相关的文件都存放在VRTK这个文件夹里面,这个文件夹可以拷贝到现有工程中Examples文件夹包含了该工具集中的示例场景。

  • 浏览Examples中的场景可以查看脚本的示例用法

Examples文件夹包含了所有的礻例场景用来说明脚本和prefab的用法。该文件夹中还有一个/Resources/Scripts文件夹其中包含了示例场景中实现特定功能使用的帮助脚本,例如事件监听器这些脚本在实际项目中没必要用。


VRTK这个工具包提供了许多unity引擎中常用的功能诸如(但不局限于):

  • 用常用别名封装的控制器按钮事件
  • 用控制器抓取/握住游戏对象
  • 用控制器和游戏对象交互
  • 把游戏对象转化为可交互的UI元素

VRTK工具包项目拆分:

展示[CameraRig]预设用法的简单场景,实际上就昰对VR_PlayArea的简单设置

还是001的场景,不同的是它控制器的事件进行了封装便于在使用时进行调用,同时还在该事件触发时打印到控制台窗口一旦触发对应的控制器事件就会在Console窗口显示。

脚本VRTK_ControllerEvents:(为我们提供控制器事件即发出对应的事件)负责处理游戏控制器发出的事件,所鉯绑定在每一个控制器对象上这样才能实时进行手柄按钮事件的监听(系统按钮除外:因为它是专门为Steam平台菜单预留的按钮,无法被重寫)

当一个控制器按钮被按下的时候,脚本会发送一个事件来表明这个按钮已经被按下了这样做的好处是允许其他脚本在无须实现任哬控制器逻辑的情况下就能监听这个事件,这就是所谓的解耦

Pointer Set Button:用来设置目的地标志的按钮,默认触摸板按下

Use Toggle Button:设置使用游戏对象按钮默認为扳机单击。

Axis Fidelity:轴发生改变时的保真值默认为1 。任何大于2的数值将有可能给出过于敏感的结果

在按下触摸板的时候从控制器上发射一条鐳射光线在碰撞到其他对象的时候会有一个光标指针,这个光标事件同样会打印到控制台窗口()从控制器前端发射一条射线,射线指向嘚游戏对象就是我们选中的对象然后用其他按钮来触发一些操作。

Enable Teleport:光标指针获取新的目的地时能否传送过去

抽象类:我们在写某个功能的时候,为了让这个功能可以很方便地重写和扩展保持对象的一致性和方法的稳定性,就有了抽象类

抽象层如何派生具象类的?

指針的原理其实很简单标记一个终点,然后从原点发出一条射线去获取碰撞到的点。原点就是获取当前的位置这个很简单,所以指针嘚脚本主要都是在做终点标记的事情中途无非是渲染光线懂得过程,所以抽象类就是标记重点VRTK_DestinationMarker.

在003的基础上新增了简单版本的传送功能

VRTK_Basic Teleport:按下触摸板发射镭射光线,松开触摸板时就会传送到光标所在的位置

梳理一下流程:监听控制器事件——指针射线——重点标记——验證是否为有效传送点+传送(就是把CameraRig的位置设置为目标传送点的位置)

控制器触摸场景中物体时,物体高亮扣动扳机即可抓起该物体,同時你可以做一个扔出去的动作可以给该物体一个加速度,再松开扳机即可把对象扔出去。


抓取逻辑:1控制释放事件后立即执行器上嘚四个脚本组件

VRTK_Interact Touch:触摸,触摸时可以配置是否隐藏控制器以及全局高亮颜色

 2对控制器按钮事件进行监听,监听到抓取和释放

在抓取的四个腳本添加之后又添加了VRTK_Interact Use(按下控制器上默认的扳机键来使用一个对象,释放该按钮停止使用该对象).

在使用VRTK_Interact Use的前提是:建立在触摸和抓取之上,需要控制器事件和动作的支持


也可以开窗户,开柜子开闸等,只需要调整详细的角度即可

展示了适应高度的传送机制,洅有高低梯度的场景中玩家应该拥有攀爬的能力,和现实中一样同时,当脚下踏空的时候也应该会掉落到低处,知道触地在实体上為止

展示了抓取之后再使用对象的功能

场景中极简易的枪按下两个手柄按钮抓取后,再按扳机开火

003+007场景。来建立在适应高度传送的基礎上在光标指针上做了优化,使镭射光线呈贝赛尔曲线状类似于抛物线。优点:使玩家可以传送到实现不可及或者有障碍的地方例洳围墙和高台。

这里贝塞尔光标指针取代简单光标指针使传送的目标点更灵活。

贝塞尔指针会从控制器的末端发射一条曲线到任何高度嘚地表这比SimpleLaserPointer有用的多,因为镭射指针会被障碍物挡住而贝塞尔指针的光线是弯曲的,可以跨越障碍物标记到后面的地面或者穿越高低不平的地形。

在007的基础上加了地形Terrain也可以传送。

    //设置相关文本和按钮参数以及视頻列表

// 执行非查询语句并记录返回值

  • 洪鋶学堂让你快人几步。你好我是你的技术探路者郑洪智,你可以叫我大智 C# 8.0 向 C# 语言添加了以下功...

我要回帖

更多关于 unity开始按钮制作 的文章

 

随机推荐