VRTK设计到的相关类
- 控制器高亮:VRTK_ControllerHighlighter
- 物体/控制器(边缘)高亮:VRTK_OutlineObjectCopyHighLighter
- 控制器振动:VRTK_ControllerHaptics
脚本控制实现细节
highLighter.HighlightController(Color.red)
VRTK_ObjectAppearance.SetOpacity(VRTK_DeviceFinder.GetModelAliasController(gameObject),0.5f)
highLighter.HighlightElement(SDK_BaseController.ControllerElements.Trigger,Color.yellow)
VRTK_ControllerHaptics.TriggerHapticPulse(VRTK_ControllerReference.GetControllerReference(gameObject),0.1f)
Unity中VRTK_SDK配置
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VRTK;
public class ControllerHighlight : MonoBehaviour
{
private VRTK_ControllerHighlighter highLighter;
private VRTK_ControllerEvents events;
void Start ()
{
highLighter = GetComponent<VRTK_ControllerHighlighter>();
events = GetComponent<VRTK_ControllerEvents>();
events.TriggerPressed += Events_TriggerPressed;
events.TriggerReleased += Events_TriggerReleased;
}
private void Events_TriggerReleased(object sender, ControllerInteractionEventArgs e)
{
highLighter.UnhighlightElement(SDK_BaseController.ControllerElements.Trigger);
VRTK_ObjectAppearance.SetOpacity(VRTK_DeviceFinder.GetModelAliasController(gameObject), 1f);
}
private void Events_TriggerPressed(object sender, ControllerInteractionEventArgs e)
{
highLighter.HighlightElement(SDK_BaseController.ControllerElements.Trigger,Color.yellow);
VRTK_ObjectAppearance.SetOpacity(VRTK_DeviceFinder.GetModelAliasController(gameObject),0.5f);
}
void Update ()
{
}
private void OnTriggerStay(Collider other)
{
highLighter.HighlightElement(SDK_BaseController.ControllerElements.Body,Color.yellow);
VRTK_ControllerHaptics.TriggerHapticPulse(VRTK_ControllerReference.GetControllerReference(gameObject),0.1f);
}
private void OnTriggerExit(Collider other)
{
highLighter.UnhighlightElement(SDK_BaseController.ControllerElements.Body);
}
}