OpenXRCompositionLayerQuad
Плоская поверхность слоя OpenXR с ray-to-UV пересечением.
Плоский прямоугольный composition layer. QuadSize задаёт размеры поверхности, LayerViewport.Size — разрешение UI; согласуйте отношение сторон. Меняйте QuadSize вместо Scale и сохраняйте ортонормальный global transform без унаследованного масштаба/skew.
Inherited IntersectsRay использует конкретную реализацию Quad: world-space луч даёт UV либо (-1,-1), Y направлена вниз. Проверка не учитывает стены, видимость, текущий трекинг или GUI focus и не генерирует click. Готовый QuadUiRay helper добавляет проверки и перевод в пиксели.
QuadSize сейчас передаётся native-слою напрямую, без WorldScale conversion; выполненный пример ограничен WorldScale=1. Реальные native/fallback размеры при других масштабах нужно проверять отдельно. Базовые правила viewport, alpha, hole punch и владения действуют и здесь.
На SDK 1.0.0 выполнены constructor/размеры, назначение viewport, ray mapping с translation/rotation и отказы при scale. Реальный compositor, изображение, контроллер/GUI и export не проверены. Движок не изменялся.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
OpenXRCompositionLayerQuadКонструктор
public OpenXRCompositionLayerQuad();Создаёт плоский слой с QuadSize=(1,1), SortOrder=1 и выключенными AlphaBlend/EnableHolePunch. Сам конструктор не запускает XR и не назначает viewport. После добавления в дерево возможен обычный mesh fallback; наличие Entity не доказывает native composition.
Свойства1
QuadSizeСвойство
public Vector2 QuadSize { get; set; }Размеры поверхности Quad, изначально Vector2(1,1), отдельно от pixel Size viewport. Используйте положительные компоненты и подходящее отношение сторон; setter сохраняет значения без проверки положительности, обновляет native size и отмечает fallback mesh для обновления. Не заменяйте это Entity Scale. Native size передаётся напрямую без WorldScale conversion; выполненный пример ограничен WorldScale=1.
Методы2
GetQuadSizeVector2
public Vector2 GetQuadSize();Возвращает сохранённое значение. Размеры поверхности Quad, изначально Vector2(1,1), отдельно от pixel Size viewport. Используйте положительные компоненты и подходящее отношение сторон; setter сохраняет значения без проверки положительности, обновляет native size и отмечает fallback mesh для обновления. Не заменяйте это Entity Scale. Native size передаётся напрямую без WorldScale conversion; выполненный пример ограничен WorldScale=1.
Vector2Размеры поверхности Quad, изначально Vector2(1,1), отдельно от pixel Size viewport. Используйте положительные компоненты и подходящее отношение сторон; setter сохраняет значения без проверки положительности, обновляет native size и отмечает fallback mesh для обновления. Не заменяйте это Entity Scale. Native size передаётся напрямую без WorldScale conversion; выполненный пример ограничен WorldScale=1.
SetQuadSizevoid
public void SetQuadSize(Vector2 size);Сохраняет настройку. Размеры поверхности Quad, изначально Vector2(1,1), отдельно от pixel Size viewport. Используйте положительные компоненты и подходящее отношение сторон; setter сохраняет значения без проверки положительности, обновляет native size и отмечает fallback mesh для обновления. Не заменяйте это Entity Scale. Native size передаётся напрямую без WorldScale conversion; выполненный пример ограничен WorldScale=1.
| Имя | Тип | По умолчанию |
|---|---|---|
size | Vector2 | — |
sizeРазмеры поверхности Quad, изначально Vector2(1,1), отдельно от pixel Size viewport. Используйте положительные компоненты и подходящее отношение сторон; setter сохраняет значения без проверки положительности, обновляет native size и отмечает fallback mesh для обновления. Не заменяйте это Entity Scale. Native size передаётся напрямую без WorldScale conversion; выполненный пример ограничен WorldScale=1.