Files
xrwise-datastructure/objects/PresentationWall.md
T
2026-06-11 14:45:36 +02:00

1.7 KiB

PresentationWall

A slideshow display surface. Loads a set of JPEG slides from Supabase storage and renders them in sequence.

Currently not in Creator

Type

pre-defined

3D

The PresentationWall is a 4m x 2,25m opaque Plane. When "controls" is set to true it expands to 4m x 2,5m. Its Origin is at the Bottom-Center (if controls are disabled). Spawnpoint should be {0,1,0} so its 1m above the floor.

Custom Args:

Key Type Implemented Description
file string ✔️ UUID of the Slide record in the Supabase slides table. The runtime fetches slides_count and loads each {storage_folder}/{i}.jpg
widthcrop float ⚠️ no-op in Unity Horizontal crop
heightcrop float ⚠️ no-op in Unity Vertical crop
controls bool If Controls are enabled at the bottom of the screen, currently always true
grabable "true" / "false" ⚠️ Whether the item can be grabbed in-experience (common to all types)

Special Notes:

file is not a storage path — it is the id field of a Slide row in Supabase. The behaviour queries supabase.From<Slide>().Where(s => s.id == value) to find the slide folder and count. Signed URLs are generated per slide (1-hour TTL) and loaded as Texture2D.

Example:

{
  "position": { "x": 10.0, "y": 4.0, "z": -6.0 },
  "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
  "scale":    { "x": 1.0, "y": 1.0, "z": 1.0 },
  "type": "pre-defined",
  "resourcename": "PresentationWall",
  "item-custom-args": [
    { "argument": "file",       "value": "b83a17ab-92bf-4122-a4d0-7b467a105ae0/converted/powerpoint1" },
    { "argument": "widthcrop",  "value": "0" },
    { "argument": "heightcrop", "value": "0" }
  ],
  "item-custom-args-adv": null
}