TVManager Scripting API
Methods/Events
The following is the list of events that any behavior may call to modify the TV's state (they ALL start with an underscore _
):
_ChangeMedia
- The main workhorse event that handles loading whatever media is needed to be loaded (either media swap or refreshing the current one)
- Variables used for input data:
IN_MAINURL
,IN_ALTURL
,IN_TITLE
- If neither
IN_MAINURL
norIN_ALTURL
norIN_TITLE
are present, then the event will treat it as a local media refresh and won't take ownership. - If either urls are present, ownership will be taken unless enabled security measures are triggered.
- If only
IN_TITLE
is present, it will simply update that data. - If the tv is locked and the user does not match the requisite permissions, the event will purge
IN_MAINURL
,IN_ALTURL
andIN_TITLE
, and simply treat the event call as a local refresh.
_ChangeMedia(VRCUrl, VRCUrl, string)
- UdonSharp only equivalent of the combination of
IN_MAINURL
,IN_ALTURL
,IN_TITLE
and_ChangeMedia
- To update just the title without modifying the urls, do
_ChangeMedia(null, null, "My new title")
- UdonSharp only equivalent of the combination of
_ChangeVideoPlayer
- This event handles the swapping of the video player configurations defined by the TV.
- Variable used for input data:
IN_VIDEOPLAYER
- The variable is a 0-index array value (first entry is the value
0
) representing a particular item in the TV's Video Managers list.
_ChangeVideoPlayer(int)
- UdonSharp only equivalent of the combination of
IN_VIDEOPLAYER
and_ChangeVideoPlayer
- UdonSharp only equivalent of the combination of
_TogglePlay
- Swaps between playing and pausing the media.
- If the media is stopped, this event will trigger a media refresh to start it up.
_Play
- This event causes the current media to either start or resume, depending on the TV's current state.
_Pause
- This event causes the current media to suspend if there is one playing.
_Stop
- This event halts any currently playing media.
_Skip
- This event force triggers the current playing media to end.
- This will trigger the _TvPause and _TvMediaEnd events.
_UseMainUrl
- Force the local user to use the main url instead of the alternate one.
_UseAlternateUrl
- Force the local user to use the alternate url instead of the main one.
_ToggleUrlMode
- Swap the user between using the alternate and main urls.
_ChangeUrlMode(bool)
- Explicitly specify which url mode to use (true is using alternate url)
_Mute
- This event disables any audio output from the TV.
_UnMute
- This event enables any audio output from the TV.
_ToggleMute
- This event swaps the state of the audio outputs from the TV.
_ChangeMute(bool)
- UdonSharp only method that updates the state of the audio outputs from the TV, based on the provided bool parameter.
_ChangeVolume
- This event handles updating the volume of the TV.
- Variable used for input data:
IN_VOLUME
- The variable is a float that expects a value between 0.0f and 1.0f (representing a percent of the max volume)
_ChangeVolume(float)
- UdonSharp only equivalent of the combination of
IN_VOLUME
and_ChangeVolume
- UdonSharp only equivalent of the combination of
_ToggleVideoForce2d
- This event swaps the flag that tells shaders whether they should be allowed to show 3D or only 2D content.
- Does not apply during the blit operation, but instead is passed as a "request" type of value to the shaders via the shader _VideoData matrix.
_ToggleColorCorrection
- This event swaps the flag for whether to implicitly apply gamma correction to the video content or not.
_EnableColorCorrection
- This event enables the implicit gamma correction flag.
_EnableColorCorrection
- This event disabled the implicit gamma correction flag.
_ChangeColorCorrection(bool)
- UdonSharp only method for setting the implicit gamma correction flag to a particular state.
_Change3DMode(int)
- UdonSharp only method for switching which stereo 3D video mode the shaders should render.
- Currently supports Side-By-Side and Over-Under along with their eye-swapped variants.
- See the Video Data Documentation for more information.
- Note: In this API, negative numbers are not allowed. Instead use the 3D Width api calls below to modify that setting.
_Toggle3DWidth
- This event will swap the rendering flag for stereo video pixel precision.
_Width3DFull
- This event will set the flag for rendering stereo video with pixel exact 3d which treats each eye as half the video res (depending on the 3d mode setting).
_Width3DHalf
- This event will set the flag for rendering stereo video with pixel exact 3d which treats each eye as pixel exact res (depending on the 3d mode setting).
_Change3DWidth(bool)
- UdonSharp only method for setting the stereo pixel width flag to a particular state.
_ToggleVideoForce2d
- This event swaps whether or not the shaders should enforce non-stereo rendering when stereo content is declared.
_AudioMode3d
- This event switches any audio outputs from a stereo mode, to a positional audio mode.
_AudioMode2d
- This event switches any audio outputs from a positional audio mode, to a stereo mode.
_ToggleAudioMode
- This event swaps the audio output mode between positional and stereo, based on it's current value.
_ChangeAudioMode(bool)
- UdonSharp only method that updates the mode of the audio outputs, based on the provided bool parameter.
- If the bool is true, the audio is positional (3d). If false, the audio is stereo (2d).
_ReSync
- This event makes the TV recalculate the local play time from the synced owner playtime.
- Media (especially long-form) can some times drift from their synced time. This helps mitigate that issue.
_Sync
- This event forces the TV to conform to any synchronized data changes.
- When in this state, the TV will always attempt to adjust itself so that it stays in sync with the current TV owner.
_DeSync
- This event forces the TV to ignore any synchronized data changes
- This only applies to non-owners. It can allow viewers to watch the media at their own pace. For example if someone has to step away for a moment, they could de-sync and then pause the media. Then when they come back, they can choose to re-sync with the owner, or continue watching from where the left off.
_ToggleSync
- This event swaps the sync flag to the opposite of its current state.
_ChangeSync(bool)
- UdonSharp only method that updates the sync flag based on the provided bool parameter.
_LoopStart
- This event enables the TV's media looping logic.
_LoopStop
- This event disables the TV's media looping logic.
_ToggleLoop
- This event swaps the media looping logic between enabled and disabled.
_ChangeLoop(bool)
- UdonSharp only method that updates the enabled state of the media looping logic.
_ChangeSeekPercent
- This event updates the current time of the actively playing media.
- The variable is a float that expects a value between 0.0f and 1.0f (representing a percent of the total media duration)
- Commonly updated via some sort of slider.
- Variable used for input data:
IN_SEEK
_ChangeSeekPercent(float)
- UdonSharp only equivalent of the combination of
IN_SEEK
and_ChangeSeekPercent
- UdonSharp only equivalent of the combination of
_ChangeSeekTime
- This event updates the current time of the actively playing media.
- Expects a float representing the time in seconds to seek the media to.
- Variable used for input data:
IN_SEEK
_ChangeSeekTime(float)
- UdonSharp only equivalent of the combination of
IN_SEEK
and_ChangeSeekTime
- UdonSharp only equivalent of the combination of
_ChangeSeekPercent
- This event updates the current time of the actively playing media based on the percent value passed.
- Variable used for input data:
IN_SEEK
- Expects a normalized 0 to 1 float value representing the point in the media to skip to.
- This is primarily useful for UI sliders to control the seek position.
_ChangeSeekPercent(float)
- UdonSharp only equivalent of the combination of
IN_SEEK
and_ChangeSeekPercent
- UdonSharp only equivalent of the combination of
_SeekForward
- This event implicitly fast-forwards the seek time by 10 seconds.
_SeekBackward
- This event implicitly rewinds the seek time by 10 seconds.
_ChangeSeekOffset
- This event sets the local playback offset from the canonical playback time.
- Positive value plays ahead (typically used for karaoke singers)
- Negative value plays behind (like if a listener hears the karaoke singer too late and wants to correct for that)
- This works even if you are the owner of the TV.
- Variable used for input data:
IN_SEEK
_ChangeSeekOffset(float)
- UdonSharp only equivalent of the combination of
IN_SEEK
and_ChangeSeekOffset
- UdonSharp only equivalent of the combination of
_ChangePlaybackSpeed
- This event sets the local playback speed of the selected video manager (engine).
- Allows values between half-speed
0.5f
and double-speed2f
. - Variable used for input data:
IN_SPEED
_ChangePlaybackSpeed(float)
- UdonSharp only equivalent of the combination of
IN_SPEED
and_ChangePlaybackSpeed
- UdonSharp only equivalent of the combination of
_ResetPlaybackSpeed
- This event returns the playback speed to normal speed
1f
.
- This event returns the playback speed to normal speed
_Lock
- This event tells the TV to only allow the instance master to manage the sync data (media swapping/synced seeking)
- This event implicitly assigns the instance master as the TV owner.
_UnLock
- This event tells the TV to allow anyone to manage the sync data (media swapping/synced seeking)
_ToggleLock
- This event swaps the locked state of the TV to the opposite of its current state.
- This event will ignore any calls to it that aren't from the instance master.
_ChangeLock(bool)
- UdonSharp only method that updates the locked state based on the bool parameter.
- This method will ignore any calls to it that aren't from the instance master.
_EnableInteractions
- This event will run through all its listeners and attempt to find all UIShapes' colliders and re-enable them.
- This restores intractability with the given UI elements that the UIShapes are connected to.
_DisableInteractions
- This event will run through all its listeners and attempt to find all UIShapes' colliders and disable them.
- This halts intractability with the given UI elements that the UIShapes are connected to preventing the player from clicking on anything in them.
_ToggleInteractions
- This event swaps back and forth between
_EnableInteractions
and_DisableInteractions
. - Easy to use with a UI button or custom interact script.
- This event swaps back and forth between
_ChangeInteractions(bool)
- UdonSharp only method that updates the interaction state for associated plugins.
_EnableVideoTexture
- This event causes the TV to enable rendering the video engine texture to the rendering outputs.
- This is on by default.
_DisableVideoTexture
- This event causes the TV to skip rendering the video engine texture to the rendering outputs.
- Will cause any fallback images to be displayed instead (if available).
_ToggleVideoTexture
- This event swaps back and forth between
_EnableVideoTexture
and_DisableVideoTexture
. - Easy to use with a UI button or custom interact script.
- This event swaps back and forth between
_EnableGlobalTexture
- This event tells teh TV to render the
_Udon_VideoTex
texture reference to enable access from avatars. - This is typically enabled by default.
- Global texture should only ever be active on one TV instance at a time.
- This event tells teh TV to render the
_DisableGlobalTexture
- This event tells the TV to stop rendering the
_Udon_VideoTex
texture reference to disable access from avatars.
- This event tells the TV to stop rendering the
_ToggleGlobalTexture
- This event swaps back and forth between
_EnableGlobalTexture
and_DisableGlobalTexture
. - Easy to use with a UI button or custom interact script.
- This event swaps back and forth between
_IsManagedSpeaker(AudioSource)
- UdonSharp only helper method to know whether a given AudioSource is considered to be managed by the TV.
- It will check against all connected VPManagers, regardless of state.
Inherited from ArchiTech.SDK
_RegisterListener
- This event assigns a given behavior as a listener of the TV.
- Variables used for input data:
IN_LISTENER
andIN_PRIORITY
- This event should be called during the
Start
event phase of a behavior and should simply assign the behavior's own reference to theIN_LISTENER
variable along with optionally setting theIN_PRIORITY
variable to a number between -128 and 127 inclusively, where -128 is the highest priority. 0 is the default. - An example is available in the Plugins Documentation page.
_RegisterListener(UdonSharpBehaviour)
- UdonSharp only equivalent of the combination of
IN_LISTENER
and_RegisterListener
- This is generally done like this:
tv._RegisterListener(this);
- The method itself will convert it to a standard UdonBehavior, so don't worry about that.
- The priority defaults to 0 when using this method.
- UdonSharp only equivalent of the combination of
_RegisterListener(UdonSharpBehaviour, sbyte)
- UdonSharp only equivalent of the combination of
IN_LISTENER
,IN_PRIORITY
and_RegisterListener
- This is generally done like this:
tv._RegisterListener(this, 10);
- The method itself will convert it to a standard UdonBehavior, so don't worry about that.
- The priority is a number between -128 and 127 inclusively, with 127 being the highest priority.
- UdonSharp only equivalent of the combination of
_UnregisterListener
- This event directly removes the UdonBehaviour from the registered listeners.
- Variables used for input data:
IN_LISTENER
- The behaviour will no longer receive events and must be re-registered to restore event reception.
_UnregisterListener(UdonSharpBehaviour)
- UdonSharp only equivalent of the combination of
IN_LISTENER
and_UnregisterListener
- UdonSharp only equivalent of the combination of
_DisableListener
- This event flags a specific registered behaviour as to be muted, ie. it will not receive any events from the TV.
- This keeps the listener as connected to the tv, but ignores the events.
- Variables used for input data:
IN_LISTENER
_DisableListener(UdonSharpBehaviour)
- UdonSharp only equivalent of the combination of
IN_LISTENER
and_DisableListener
- UdonSharp only equivalent of the combination of
_EnableListener
- This event flags a specific registered behaviour as to be un-muted, ie. it will resume receiving the events from the TV.
- Variables used for input data:
IN_LISTENER
_EnableListener(UdonSharpBehaviour)
- UdonSharp only equivalent of the combination of
IN_LISTENER
and_EnableListener
- UdonSharp only equivalent of the combination of