| Config JSON |
PresentationConfig.json, configUrl, configPath |
UnityWebRequest.Get() plus JsonUtility |
PresentationConfig object |
Logs error; remote preparation fails if config cannot parse. |
| Scene image |
scenes[].screen.images[0].url |
UnityWebRequestTexture.GetTexture() |
Texture2D assigned to runtime material |
Logs error; missing assets can prevent preparation. |
| Voiceover audio |
scenes[].voiceover.audio.url |
UnityWebRequestMultimedia.GetAudioClip() |
Scene AudioClip and AudioSource |
Logs error; duration fallback may still exist from config. |
| Background audio |
audio.background.url |
UnityWebRequestMultimedia.GetAudioClip() |
Looping background clip/source and offline mix samples |
Logs error; presentation can continue without background. |
| Camera shots |
Assets/StreamingAssets/CameraShots.json |
File.ReadAllText() / JsonUtility |
Dictionary<string, CameraShotObj> |
No explicit fallback if file missing in CamController. |
| Bot arm policies |
Assets/StreamingAssets/BotArmPosePolicies.json |
File.ReadAllText() / JsonUtility |
Pose intent/envelope/profile lookups |
Falls back to built-in defaults and records warning string. |
| Bot motion plan |
Sibling PresentationBotMotionPlan.json |
UnityWebRequest.Get() / loader |
Timed beat plan |
Generates fallback plan when enabled. |
| Generated HTML |
Assets/StreamingAssets/AnuvaVirtualScreens/generated/*.html |
Vuplex LoadUrl(file:///...) |
WebView screen content |
Bridge host logs if prefab missing; file existence not deeply validated. |
| Video samples |
Assets/StreamingAssets/video.mp4, AVProVideoSamples/* |
Unknown in first-party runtime |
Unknown |
Video playback surface not confirmed. |