LEAPMotion猎户座(VR)开发~003~UI


LEAPMotion猎户座(VR)开发~003~UI

Created by miccall (转载请注明出处)
  • 先来看看UI的效果 (抱歉 不会做gif)
  • demo下载的话 leap官网就有 本篇文章讲讲构建和简单的使用

这里写图片描述

UI 的添加

  • 从官网下载下来的UI Input 的包 导入

  • VR场景拖入 LMHeadMountedRig 预制体

  • 在导入的UI包中 ,找到LeapMotionModules \ UIInput 预制文件夹下 ,把“LeapEventSystem”组合式拖入场景 。

  • 自己创建一个Canvas(右击 -> UI -> canvas) 并在其下添加 UI 元素(ui元素当然也在LeapMotionModules \ UIInput 预制文件夹下)

    • 重要的一点 : canvas的属性 : Render Mode 设置为 : world space
      然后把自己加入ui组件 ,进行排版 (可以是默认的UGUI 也可以是UI组件里面带的UI元素)
  • 调整canvas 的边界 到恰好合适 (width 和 Height 属性)

  • 调整canvas 的 scale 到合适

  • 调整位置到合适的地方 (LMHeadMountedRig 里面的摄像机可以看到的位置 )

差不多就这样了 还有几点要提醒的

  • 标准系统 的 GUI 元素 可以添加父画布上 。

  • Leap UI 输入 模块 也可以用到 的uGUI的 系统。

  • 特殊的leap UI元素, 可以在预制的文件夹中找到

  • 这些预制也兼容鼠标交互


UI组件里面提供的UI元素 :

这里写图片描述

分别是 :
- 一般的button
- 只能用于物理的button (不能鼠标点击 )
- 滑动的布局
- 滑动条
- 单选开关

Button

这里写图片描述

最里层Text 显示了button的按钮文字
外面一层是button 的 Image
最外面一层便是最主要的一层了

这里写图片描述

Compressible UI 在模块中这是一个小助手工具,允许UI元素扩展和压缩与画布的表面——响应联系和互动。 它也可以控制阴影的不透明度。 这是一个强大的工具向你的UI元素增加了活力。

这里写图片描述

 unityc#   Event Trigger : <Component>

这里写图片描述

它默认挂了两个事件 播放按键声音
还有 CompressibleUI 脚本
按下执行 Rereact() 弹起执行 Expand()

响应的事件

该UI在创立的时候 ,给我们加入了
PointerDown 和 PoninterUp 两个事件
官方给的事件信息 我们也可以用接口的形式获取对应的事件

回调方法解释
OnBeginDrag在开始拖动之前调用。
OnCancel当发生取消事件时由EventSystem调用。
OnDeselect当选择一个新对象时由EventSystem调用。
OnDrag每次在拖动期间移动指针时由EventSystem调用。
OnDrop当对象接受删除时由EventSystem调用。
OnEndDrag一旦拖动结束,由EventSystem调用。
OnInitializePotentialDrag当发现拖动时,但在有效开始拖动之前由EventSystem调用。
OnMove当Move事件发生时由EventSystem调用。
OnPointerClick发生Click事件时由EventSystem调用。
OnPointerDown当发生PointerDown事件时由EventSystem调用。
OnPointerEnter当指针输入与此EventTrigger关联的对象时由EventSystem调用。
OnPointerExit当指针退出与此EventTrigger关联的对象时由EventSystem调用。
OnPointerUp当发生PointerUp事件时由EventSystem调用。
OnScroll当发生Scroll事件时由EventSystem调用。
OnSelect当Select事件发生时由EventSystem调用。
OnSubmit当发生Submit事件时由EventSystem调用。
OnUpdateSelected与此EventTrigger关联的对象更新时由EventSystem调用。

Toggle

  • toggle 和Button很像 这里就讲不同的点 :
  • 它比button多过了一个脚本
    1. C# : ToggleToggler 脚本很简单 当触发系统的 Toogle 的 OnvalueChange时 做一些改变 ,例如 更改文字 更改颜色 。
    2. 多调用 CompressibleUI的一个 DivideLayerHeightsOnToggle(); 方法
      BUG : 当设置了默认状态为is on 时 。初始化的状态没有发生改变 。 单次点击不变 。

Slider

  • 找个组件比其他的复杂一些
  • 层次 :

      1.  Hnadle Slide Area :
           导航的滑块 是一个Canvas  他的Child 同样是一个 Canvas 里面包含一个Image (滑块) 
      2.  Fill   Area   :             
          滑动的填充Canvas  由一个Image和一个 Mask 组成他的child 由Fill 和 HnadleShow 组成  Fill完成大部分的填充任务 而HnadleShadow 细节化了阴影效果 包括它上面挂载一个Slider Shadow 脚本 。用来实时更新位置变化和阴影效果 。
      3.  Background : 不用说就是背景而已 
    
  • 功能部分 :
    1. Slider 调用OnvalueChange时 , 调用挂载自身的SliderVolume脚本
    setSliderSoundVolume();方法 来更新滑块的值 。
    2. Event Trigger
    – BeginDrag 开始拖拽
    – PointerDown 点击
    – Pointer Up 抬起

  • 除了BeginDrag方法 播放声音 ,其余的执行都和其他一样

Script c# for unity

Interface
这里写图片描述

1. Using  引入
2. 实现对应的接口   实现接口的方法 。

这里写图片描述

参与评论 您还未登录,请先 登录 后发表或查看评论
相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页

打赏作者

miccall

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值