相关文章推荐
不爱学习的红薯  ·  sed ...·  6 月前    · 
大鼻子的课本  ·  wpf ...·  1 年前    · 
酒量大的鞭炮  ·  javascript - Mobx ...·  1 年前    · 
不羁的领带  ·  networking - Decoding ...·  1 年前    · 

原标题:VR丨手把手教你用Unity开发HTC vive:拾取和触碰

拾取和触碰在VR游戏中是必须要有的功能,这样才能让玩家有到沉浸感。那么这些功能是如何开发出来的呢,下面要给大家带来的就是在HTC vive中Unity开发拾取和触碰功能的教程。

unity5.4.4

SteamVR1.2.0(http://download.csdn.NET/detail/wuyt2008/9792970)

ViveInputUtility1.5.1beta(http://download.csdn.Net/detail/wuyt2008/9792980)

1、导入SDK:SteamVR Plugin和Vive Input Utility

2、将CamerRag拖入场景

将ViveColliders拖入场景

3、添加拾取对象

之前写漏了,物体要被拾取,还需要添加刚体组件

4、添加触碰对象

添加一个3d对象,默认即可触碰

5、添加接触效果

在3d物体上添加脚本MaterialChanger,设置其参数

Normal:默认贴图

Heightlight:触碰后的贴图

Pressed:按下按钮时的贴图

Heighlight Button:指定按钮,默认是Trigger

触碰拾取对象时,显示绿色

按下按键后,变红色,可以移动旋转物体

触碰对象可以触碰,按下按键变红色,但无法移动和转动

7、事件响应

vive支持以下事件

  • IColliderEventHoverEnterHandler

  • IColliderEventHoverExitHandler

  • IColliderEventPressDownHandler

  • IColliderEventPressUpHandler

  • IColliderEventPressEnterHandler

  • IColliderEventPressExitHandler

  • IColliderEventClickHandler

  • IColliderEventDragStartHandler

  • IColliderEventDragUpdateHandler

  • IColliderEventDragEndHandler

  • IColliderEventDropHandler

  • IColliderEventAxisChangedHandler

  • 使用方法,新建脚本如下,并把脚本添加到游戏对象,即可。

  • using System.Collections;

  • using System.Collections.Generic;

  • using UnityEngine;

  • using HTC.UnityPlugin.ColliderEvent;

  • public class viveLearn : MonoBehaviour,IColliderEventHoverEnterHandler {

  • public void OnColliderEventHoverEnter(ColliderHoverEventData eventData){

  • Debug.Log ("hover");

  •