OpenXRCompositionLayerCylinder
Цилиндрический слой; учитывайте ограничение AspectRatio hit test.
Показывает viewport на внутренней стороне цилиндрической дуги. Radius и CentralAngle задают ширину дуги, AspectRatio — её высоту. Углы API в радианах. Положительные размеры и ортонормальный transform необходимы; не используйте унаследованный Scale/skew как размер панели.
Native composition требует соответствующей cylinder extension; существование Entity и сохранённые параметры не подтверждают submit или пиксели. LayerViewport, alpha, порядок и владение описаны в руководстве слоёв. FallbackSegments влияет на mesh, не native разрешение.
Известный дефект: fallback использует высоту Radius*CentralAngle/AspectRatio, а IntersectsRay — умножение на AspectRatio. На текущем SDK при AspectRatio=2 воспроизведён ray hit выше видимой fallback-панели. Для pointer UI используйте AspectRatio=1 или Quad, пока нет отдельного правильного hit test. Это ограничение не исправлялось в движке.
14 headless проверок общего набора Cylinder/Equirect покрывают параметры, геометрические лучи и fallback AABB при XR off. Native submission, реальные устройства, GUI input, WorldScale!=1 и качество рендера не проверены.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
OpenXRCompositionLayerCylinderКонструктор
public OpenXRCompositionLayerCylinder();Создаёт изогнутый слой с параметрами по умолчанию. Не запускает OpenXR и не назначает LayerViewport. Native support зависит от shape extension; без API возможен fallback после добавления в дерево. Сам constructor не подтверждает изображение или tracking.
Свойства4
AspectRatioСвойство
public float AspectRatio { get; set; }Отношение ширины дуги к высоте, изначально 1. Setter отклоняет <=0. Fallback высота равна RadiusCentralAngle/AspectRatio, но текущий IntersectsRay использует RadiusCentralAngle*AspectRatio. При 2 воспроизведено попадание над видимой панелью. Для pointer UI используйте AspectRatio=1 либо Quad до отдельного корректного hit test; изменение масштаба не исправляет формулу.
CentralAngleСвойство
public float CentralAngle { get; set; }Горизонтальный угол дуги в радианах, изначально Pi/2. Setter отклоняет <=0; degree-looking inspector presentation не меняет единицы C# API. Ширина дуги Radius*CentralAngle. Setter не подтверждает все ограничения реального OpenXR runtime. Согласуйте texture aspect и геометрию; не подставляйте 90 вместо Pi/2.
FallbackSegmentsСвойство
public uint FallbackSegments { get; set; }Число разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
RadiusСвойство
public float Radius { get; set; }Радиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.
Методы8
GetAspectRatiofloat
public float GetAspectRatio();Читает сохранённое значение. Отношение ширины дуги к высоте, изначально 1. Setter отклоняет <=0. Fallback высота равна RadiusCentralAngle/AspectRatio, но текущий IntersectsRay использует RadiusCentralAngle*AspectRatio. При 2 воспроизведено попадание над видимой панелью. Для pointer UI используйте AspectRatio=1 либо Quad до отдельного корректного hit test; изменение масштаба не исправляет формулу.
floatОтношение ширины дуги к высоте, изначально 1. Setter отклоняет <=0. Fallback высота равна RadiusCentralAngle/AspectRatio, но текущий IntersectsRay использует RadiusCentralAngle*AspectRatio. При 2 воспроизведено попадание над видимой панелью. Для pointer UI используйте AspectRatio=1 либо Quad до отдельного корректного hit test; изменение масштаба не исправляет формулу.
GetCentralAnglefloat
public float GetCentralAngle();Читает сохранённое значение. Горизонтальный угол дуги в радианах, изначально Pi/2. Setter отклоняет <=0; degree-looking inspector presentation не меняет единицы C# API. Ширина дуги Radius*CentralAngle. Setter не подтверждает все ограничения реального OpenXR runtime. Согласуйте texture aspect и геометрию; не подставляйте 90 вместо Pi/2.
floatГоризонтальный угол дуги в радианах, изначально Pi/2. Setter отклоняет <=0; degree-looking inspector presentation не меняет единицы C# API. Ширина дуги Radius*CentralAngle. Setter не подтверждает все ограничения реального OpenXR runtime. Согласуйте texture aspect и геометрию; не подставляйте 90 вместо Pi/2.
GetFallbackSegmentsuint
public uint GetFallbackSegments();Читает сохранённое значение. Число разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
uintЧисло разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
GetRadiusfloat
public float GetRadius();Читает сохранённое значение. Радиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.
floatРадиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.
SetAspectRatiovoid
public void SetAspectRatio(float aspectRatio);Настраивает параметр поверхности. Отношение ширины дуги к высоте, изначально 1. Setter отклоняет <=0. Fallback высота равна RadiusCentralAngle/AspectRatio, но текущий IntersectsRay использует RadiusCentralAngle*AspectRatio. При 2 воспроизведено попадание над видимой панелью. Для pointer UI используйте AspectRatio=1 либо Quad до отдельного корректного hit test; изменение масштаба не исправляет формулу.
| Имя | Тип | По умолчанию |
|---|---|---|
aspectRatio | float | — |
aspectRatioОтношение ширины дуги к высоте, изначально 1. Setter отклоняет <=0. Fallback высота равна RadiusCentralAngle/AspectRatio, но текущий IntersectsRay использует RadiusCentralAngle*AspectRatio. При 2 воспроизведено попадание над видимой панелью. Для pointer UI используйте AspectRatio=1 либо Quad до отдельного корректного hit test; изменение масштаба не исправляет формулу.
SetCentralAnglevoid
public void SetCentralAngle(float angle);Настраивает параметр поверхности. Горизонтальный угол дуги в радианах, изначально Pi/2. Setter отклоняет <=0; degree-looking inspector presentation не меняет единицы C# API. Ширина дуги Radius*CentralAngle. Setter не подтверждает все ограничения реального OpenXR runtime. Согласуйте texture aspect и геометрию; не подставляйте 90 вместо Pi/2.
| Имя | Тип | По умолчанию |
|---|---|---|
angle | float | — |
angleГоризонтальный угол дуги в радианах, изначально Pi/2. Setter отклоняет <=0; degree-looking inspector presentation не меняет единицы C# API. Ширина дуги Radius*CentralAngle. Setter не подтверждает все ограничения реального OpenXR runtime. Согласуйте texture aspect и геометрию; не подставляйте 90 вместо Pi/2.
SetFallbackSegmentsvoid
public void SetFallbackSegments(uint segments);Настраивает параметр поверхности. Число разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
| Имя | Тип | По умолчанию |
|---|---|---|
segments | uint | — |
segmentsЧисло разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
SetRadiusvoid
public void SetRadius(float radius);Настраивает параметр поверхности. Радиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.
| Имя | Тип | По умолчанию |
|---|---|---|
radius | float | — |
radiusРадиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.