MRTK 滚动对象集合是一个 UX 组件,使用它可以通过包含的可视区域滚动 3D 内容。 可以通过近距或远距输入交互以及离散分页来触发滚动运动。 它支持交互式和非交互式对象。

开始使用滚动对象集合

  • 创建新的 Unity 场景。
  • 导航到“混合现实工具包”>“添加到场景并进行配置”,将 MRTK 添加到场景中。
  • 设置滚动对象

  • 在场景中创建一个空的游戏对象,并将其位置更改为 (0, 0, 1)。

  • 向游戏对象添加一个 滚动对象集合 组件。

    添加滚动对象集合后,会自动将一个盒碰撞体和一个 近距交互可触摸 组件附加到根游戏对象。 滚动对象可以通过这些组件来侦听近距和远距交互输入事件,例如指针触摸或单击。

    MRTK 滚动对象集合有两个重要元素,这些元素是在根滚动对象层次结构下作为子游戏对象创建的:

  • Container - 所有滚动内容对象必须是容器游戏对象的子级。
  • Clipping bounds - 如果启用滚动内容屏蔽,则剪裁边界元素可确保只有其边界内的可滚动内容可见。 剪裁边界游戏对象有两个组件:已禁用的盒碰撞体和 剪裁框
  • 通过代码控制滚动对象

    MRTK 滚动对象集合公开了几个用于移动滚动容器的公共方法,移动方式是根据 pagination 属性配置来贴靠容器的位置。

    MRTK/Examples/Demos/ScrollingObjectCollection/Scripts 文件夹下提供了有关如何访问滚动对象集合分页接口的示例。 可将 可滚动分页 示例脚本链接到场景中的任何现有滚动对象集合。 然后,该脚本可由公开 Unity 事件的场景组件(例如 MRTK 按钮 )引用。

    public class ScrollablePagination : MonoBehaviour
        [SerializeField]
        private ScrollingObjectCollection scrollView;
        public void ScrollByTier(int amount)
            scrollView.MoveByTiers(amount);
    

    滚动对象集合属性

    滚动示例场景

    ScrollingObjectCollection.unity 示例场景由 3 个可滚动示例组成,每个示例具有不同的速度衰减配置。 该示例场景包含墙壁,用于显示在层次结构中默认禁用的表面放置行为。 可在 MRTK/Examples/Demos/ScrollingObjectCollection/Scenes 文件夹下找到示例场景。

    滚动示例预制件

    为方便起见,可以使用两个滚动对象集合预制件。 可在 MRTK/Examples/Demos/ScrollingObjectCollection/Prefabs 文件夹下找到示例预制件。

  • 标准着色器
  •