Unity開發HTC vive 五、拾取和觸碰

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");
	}
}


發佈了164 篇原創文章 · 獲贊 152 · 訪問量 96萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章