Hololens 2 新建自定义按钮

官方链接地址

1、创建Cube
2、添加PressableButton脚本,并点击AddNearin…
在这里插入图片描述
3、把Cube拖入到MovingButtonVisuals变量中
在这里插入图片描述

4、点击NearInteractionTouchable组件(这个组件是添加和上一个脚本绑定的,自动添加上来的)上的Fix…
在这里插入图片描述
5、这个时候选着Cube 会出现色彩块,勾选PressableButton–MMakePlanesEditable,可以调整色彩块的位置,
在这里插入图片描述
6、色彩块是表示的是当手指按下时 物体被推动的距离,对应PressableButton–PressSettings属性,也可以通过调整属性来设置距离
在这里插入图片描述
7、这个时候运行一下效果

hololens 2 自定义按钮 手势按下效果

然后可以添加手势按下、触摸、触摸结束、按下结束 这个四个事件,这四个事件只是手指触碰到触发的事件,使用射线点击并不能触发
在这里插入图片描述

8、添加视觉反馈效果,新建一个材质球,设置如下图,然后运行,射线在在cube上时,有光晕效果

在这里插入图片描述
在这里插入图片描述
9、添加Interactable脚本,设置如下
在这里插入图片描述
10、点开Interactable–Themen,可以设置射线在物体上时显示的颜色,点击时显示的颜色,设置点击时物体推动的距离

在这里插入图片描述
11、设置射线交互的事件
在这里插入图片描述

注意:PressableButton脚本 的事件是手碰到物体时才会触发,
Interactable脚本的事件射线点击时才会触发

动态事件添加的代码

  public class BaseOnClick : MonoBehaviour
  {
      protected PressableButton button;
      protected Interactable interactable;
    
      void Start()
      {
          button = this.GetComponent<PressableButton>();
          interactable = this.GetComponent<Interactable>();
         
        TouchBegin();
        TouchEnd();
        ButtonPressed();
        ButtonReleased();
      }
    

     
     
      public void TouchBegin()
      {
          button.TouchBegin.RemoveAllListeners();
          button.TouchBegin.AddListener(() =>
          {
             Debug.Log("手指触碰时")

          });
      
      }
      public void TouchEnd()
      {
          button.TouchEnd.RemoveAllListeners();
          button.TouchEnd.AddListener(() =>
          {
               Debug.Log("手指触碰结束")
          });
      }
      public void ButtonPressed()
      {
         
          button.ButtonPressed.RemoveAllListeners();
      
          button.ButtonPressed.AddListener(() =>
          {
            
               Debug.Log("手指按下")
          });
          interactable.OnClick.RemoveAllListeners();
          interactable.OnClick.AddListener(() =>
          {
              
              Debug.Log("射线按下")
          });
   

      }
      public void ButtonReleased(Action clickAction)
      {
          button.ButtonReleased.RemoveAllListeners();
          button.ButtonReleased.AddListener(() =>
          {
             Debug.Log("手指按下结束")
          });

      }


     
  }
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值