可滚动对象集合 Scrolling object collection
ScrollingObjectCollection是一个本机滚动3D对象的对象集合。它支持滚动可按下按钮和互动性以及非互动性对象。此集合同时支持远近输入。为了使用ScrollingObjectCollection,对象必须使用MRTK标准着色器,以便剪裁效果正常工作。
可滚动对象集合入门
为了方便起见,有两个ScrollingObjectCollection预制体可供使用。一个配置用于32x92mm的PressableButton预制体,另一个配置用于32x32x32mm容器中的任何对象。
只需将这些预置体放到一个场景中,添加所需的对象,然后按“UpdateCollection”来完成集合的设置和布局。
先决条件
- 集合中的所有对象必须使用MRTK标准着色器
- 集合中的每个对象都必须有一个collider和
NearInteractionTouchable
。目前所有的碰撞测试都是使用这些碰撞器完成的;ScrollingObjectCollection还不支持静态/非移动的后台碰撞器。 - 目前集合中的所有对象需要是相同的大小,另外,如果你的对象不在游戏对象的中心,你可能会得到意料之外的结果。
- 对于一个无缝的可触摸表面,滚动集合中的'cell size'应该匹配集合中每个对象的大小。
使用按钮时还有其他要求:
- PressableButton.ReleaseOnTouch必须禁用
- PhysicalPressEventRouter.InteractableOnClick大多数设置为EventOnClickCompletion或EventOnPress。
- 在编辑时,ScrollingObjectCollection可以自动修复这些组件。但是在动态实例化预制体或组件时,请确保正确设置了这些属性。
它是如何工作的
ScrollingObjectCollection订阅自己作为触摸和指针事件的全局侦听器,过滤与列表中的项对应的事件。最初,集合不做任何事情,并让事件通过子对象,这允许子对象按预期被点击和选择。一旦ScrollingObjectCollection将交互视为"拖动",该集合就开始将所有后续eventData标记为已使用,并开始在set轴上滚动列表。
当使用触摸时,列表将继续滚动,直到PokePointer越过列表前面的触摸平面。