unity3d - 有没有办法为 HoloLens 2 进行可滚动交互?
问题描述
我正在尝试使用 Unity 制作 HoloLens 2 应用程序。我要实现的下一件事是一个可滚动的列表。我想像我们都知道的那样滚动,例如文本对于 html 中的框或类似的东西来说太大了。
我知道如何移动对象,但如果它们位置太差,我希望它们隐藏起来,这样我就可以实现一个可滚动的列表。
有什么办法吗?我没有找到任何教程来做到这一点。
解决方案
我曾经实现了一个虚拟现实“虚拟操作系统”,其中包括带有 3D 对象的可滚动列表,如您在此处所见。如果这是您的显示目标,那么为了实现这一目标,请SetActive(false)
在游戏对象非常远离滚动视图时使用它们,并且在它们离开滚动区域的确切时刻——它们需要被部分剪裁-- 你可以通过一个不可见的遮罩立方体来剪辑它们。
这是该剪辑对象的着色器(不是我的):
Shader "Masked/Mask" {
SubShader {
// Render the mask after regular geometry, but before masked geometry and
// transparent things.
Tags {"Queue" = "Geometry+10" }
// Don't draw in the RGBA channels; just the depth buffer
ColorMask 0
ZWrite On
// Do nothing specific in the pass:
Pass {}
}
}
滚动事件本身是通过指尖中的碰撞器对屏幕中的碰撞器做出反应来触发的。OnTrigger
,您将测量速度并将其转换为滚动功能。就我而言,我使用的是 OS -> App -> 页面(包括选项卡)-> 小部件的类结构。这允许您继承 SomeSpecificWidget(例如 ImageButton 或 TextArea)并自动使其适当滚动,而无需滚动器关注细节。
推荐阅读
- elasticsearch - Logstash parsing different line than 1st line as header
- python - Python - Pandas - 在Dataframe中向一列插入多个值
- excel - 在 Excel 中从异常数据布局制作条形图
- tensorflow - 张量板中的不透明度图是什么?
- css - div 后面的下拉菜单显示 - z-index、溢出、位置不起作用
- json - 如何使用 terraform 云 API 调用传递数组和地图
- object - Rust:从同一个 Vec 的另一个对象修改为 Vec 中包含的一个对象
- javascript - 覆盖 React 中的常量文件值
- python - 如何根据来自另一个数据帧的条件从一个数据帧中检索单元格
- python - 在python中更改numpy数组的格式