美文网首页
【HTC-VIVE】16-HoverButton:实体物体Cub

【HTC-VIVE】16-HoverButton:实体物体Cub

作者: lijianfex | 来源:发表于2018-11-07 08:33 被阅读10次

实体Cube的按钮的交互:

在虚拟场景中,经常会出现实体的按钮,比如触发某个机关门的开启的按钮,通常是一个物体模型作为按钮,因此该类交互也是必不可少的。
基本的场景搭建:
基本构成
  • 父物体 Button 是一个 Box Collider ,用于检测手的交互。
  • Moving Part : 是可以移动的部分,表现按钮的按下的移动,它是一个实体Cube物体。

HoverButton 脚本组件:

HoverButton
可设置的属性:
  • Moving Part : 可以移动的部分,即上下移动的Cube
  • Local Move Distance : 可移动的物体在自身坐标中移动的方向以及距离
  • Engage At Precent : 在按到多少百分比时,表示有效按下按钮
  • Disengage At Precent : 在按到多少百分比时,表示无效按下按钮

按钮事件:
  • On Buuton Down(Hand) : 按下按钮的事件
  • On Button Up(Hand) : 松开按钮的事件
  • On Button Pressed(Hand) : 一直按下按钮的事件

按钮状态:
  • Engaged : 是否有效按下按钮
  • Button Down : 是否按下状态
  • Buttoon Up: 是否松开状态

HoverButtonEffect : 自定义测试脚本

public class HoverButtonEffect : MonoBehaviour
{

    //按下按钮
    public void OnButtonDown(Hand fromHand)
    {
        ColorSelf(Color.cyan);
        fromHand.TriggerHapticPulse(1000); //手柄震动
    }
    //松开按钮
    public void OnButtonUp(Hand fromHand)
    {
        ColorSelf(Color.white);
    }
    
    //设置按钮Cube 的材质颜色
    private void ColorSelf(Color newColor)
    {
        Renderer[] renderers = this.GetComponentsInChildren<Renderer>();
        for (int rendererIndex = 0; rendererIndex < renderers.Length; rendererIndex++)
        {
            renderers[rendererIndex].material.color = newColor;
        }
    }
}

相关文章

网友评论

      本文标题:【HTC-VIVE】16-HoverButton:实体物体Cub

      本文链接:https://www.haomeiwen.com/subject/atqpxqtx.html