2017年3月24日修改
vive的sdk SteamVR在升級,會有些改動。最新的SteamVR1.2.1在Unity5.4.4下狂報錯。
下面的內容是在以下環境完成的
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、添加拾取對象
添加一個3d對象,並添加腳本BasicGrabbables即可,則物體可以被拾取。
之前寫漏了,物體要被拾取,還需要添加剛體組件
4、添加觸碰對象
添加一個3d對象,默認即可觸碰
5、添加接觸效果
在3d物體上添加腳本MaterialChanger,設置其參數
Normal:默認貼圖
Heightlight:觸碰後的貼圖
Pressed:按下按鈕時的貼圖
Heighlight Button:指定按鈕,默認是Trigger
6、運行
觸碰拾取對象時,顯示綠色,
按下按鍵後,變紅色,可以移動旋轉物體
觸碰對象可以觸碰,按下按鍵變紅色,但無法移動和轉動
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");
}
}