Однажды я реализовал «виртуальную ОС» Виртуальной реальности, которая включает прокручиваемые списки с трехмерными объектами, , как вы можете видеть здесь . Если это ваша цель в том, что касается отображения, то для достижения этого используйте SetActive(false)
на объектах gameObjects, когда они очень плохо видны при прокрутке, и в тот момент, когда они покидают область прокрутки - там, где они должны быть. только частично обрезано - вы можете обрезать их через куб невидимой маски.
Это шейдер для этого объекта обрезки (не мой):
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
, вы бы измерили скорость и перевели ее для функции прокрутки. В моем случае я использую структуру классов ОС -> Приложение -> Страница (включая вкладки) -> Виджет. Это позволяет создать подкласс SomeSpecificWidget (например, ImageButton или TextArea) и автоматически заставить его прокручиваться соответствующим образом, не заботясь о специфике скроллера.