1丶在Right下繼續添加腳本VRTK_Pointer和VRTK_StraightPointerRenderer
運行后默認是按住圓盤鍵出現射線,松開消失,大家可以自定義
2丶射線的監聽事件
(1)在場景中創建一個Cube用來觸發射線檢測用,位於相機前方([VRTK_SDKManager]的Z軸方向)
(2)在Right上新建腳本SimplePointerEvents,通過得到VRTK_DestinationMarker組件注冊方法,就可以監聽射線的觸發了
注意:VRTK_Pointer組件是繼承於VRTK_DestinationMarker組件
using UnityEngine; using VRTK;// 引用VRTK命名空間 public class SimplePointerEvents : MonoBehaviour { private VRTK_DestinationMarker destinationMarker; private void Awake() { destinationMarker = GetComponent<VRTK_DestinationMarker>(); destinationMarker.DestinationMarkerEnter += DestinationMarker_DestinationMarkerEnter; destinationMarker.DestinationMarkerExit += DestinationMarker_DestinationMarkerExit; destinationMarker.DestinationMarkerHover += DestinationMarker_DestinationMarkerHover; destinationMarker.DestinationMarkerSet += DestinationMarker_DestinationMarkerSet; } private void DestinationMarker_DestinationMarkerSet(object sender, DestinationMarkerEventArgs e) { Debug.Log("與物體交互"); } private void DestinationMarker_DestinationMarkerHover(object sender, DestinationMarkerEventArgs e) { Debug.Log("射線懸停物體"); } private void DestinationMarker_DestinationMarkerExit(object sender, DestinationMarkerEventArgs e) { Debug.Log("射線退出物體"); } private void DestinationMarker_DestinationMarkerEnter(object sender, DestinationMarkerEventArgs e) { Debug.Log("射線進入物體"); } }