VRChat Image Downloding Examples

This is a WIP Unity Example Project that demonstrates some ways that remote images can be downloaded using Udon in VRChat Worlds.

Getting Started

Clone or Download this project and open it up in Unity 2019.4.31f1.

Scene File: Assets/_Project/Gallery

This scene demonstrates a RemoteImageFrame which loads images from a web server at runtime.

TheFrame

TheFrame is a GameObject with a couple of important pieces:

  • SlideshowFrame UdonBehaviour to load the images and captions from a web server.
  • Mesh object to render the frame.
  • Picture mesh to render the downloaded textures.
  • UI world-space canvas to render the caption.

SlideshowFrame

This UdonBehaviour has all of the logic to download the images and captions from a web server.

It has these public variables:

  • Rgb Url - an array of all the VRCUrls for the images to download.
  • String Url - a single VRCUrl where the caption text can be downloaded.
  • Renderer - this renderer's sharedMaterial will have its texture set from the downloaded textures.
  • Field - this UI element's text property will be set from the downloaded caption for the matching texture.
  • Slide Duration Seconds - how long to show each image.

The basic logic flow of the script is this:

  • On Start, construct a VRCImageDownloader to reuse for downloading all the images. It's important to keep this around so the textures will persist. Download the string from the String Url.
    • If the String downloads successfully, split it up line-by-line into separate strings, and save those to a _captions array. If it doesn't download, log the error message.
  • Next, try to Load the next Image. Increment the _loadedIndex to keep track of our place, then call DownloadImage() on the downloader we saved earlier.
  • If the Image downloads successfully, save a reference to it.
Description
No description provided
Readme 4.5 MiB
Languages
C# 99.3%
HTML 0.7%