【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
网友评论