当前位置: 首页 > news >正文

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("手指按下结束")});}}
http://www.lryc.cn/news/356265.html

相关文章:

  • 景源畅信:抖音小店新手小白如何做好运营?
  • 力扣 42. 接雨水 python AC
  • The 2022 ICPC Asia Nanjing Regional Contest - External D
  • 2024年蓝桥杯B组C++——复盘
  • 微调Llama3实现在线搜索引擎和RAG检索增强生成功能
  • 【软件工程】【23.04】p1
  • Flutter 中的 ColoredBox 小部件:全面指南
  • 【LeetCode 随笔】面试经典 150 题【中等+困难】持续更新中。。。
  • SwiftUI中AppStorage的介绍使用
  • iCloud 照片到 Android 指南:帮助您快速将照片从 iCloud 传输到安卓手机
  • 知识点总结
  • Python并发与异步编程
  • 动态内存管理—C语言通讯录
  • 美光EMMC芯片丝印型号查询 8LK17/D9PSK, OXA17/JY997
  • win32-鼠标消息、键盘消息、计时器消息、菜单资源
  • springboot项目部署到linux服务器
  • MagicLens:新一代图像搜索技术和产品形态
  • [9] CUDA性能测量与错误处理
  • Java学习四
  • Vue 父组件使用refs来直接访问和修改子组件的属性或调用子组件的方法
  • 范罗士、希喂、安德迈爆款宠物空气净化器哪款好?深度对比测评
  • SAP OBYC自动记账 详解
  • 《NoSQL数据库技术与应用》 MongoDB副本集
  • Flutter 中的 DropdownButtonFormField 小部件:全面指南
  • 哈希算法教程(个人总结版)
  • Nocobase快速上手 -第一个collection
  • 吴恩达2022机器学习专项课程C2W2:2.19 sigmoid函数的替代方案 2.20如何选择激活函数 2.21 激活函数的重要性
  • 循序渐进Docker Compose
  • 怎样查看JavaScript中没有输出结果的数组值?
  • 强化学习学习笔记-李宏毅