레퍼런스

동영상 플레이어, 그 부품, 에디터 설정 API의 모든 멤버와, 각각에 딸린 규칙을 정리했습니다.

업데이트 2026-10-22

모두 Udonite.Video에 있습니다. 에디터 API는 Udonite.Video.Editor.VideoSetup입니다.

VideoPlayer

VRChat의 AVPro 또는 Unity 비디오 플레이어와 같은 GameObject에 둡니다. VRChat은 동영상 이벤트를 그 오브젝트 위의 비헤이비어에만 보내기 때문입니다.

인스펙터

필드
player 재생하는 VRChat 비디오 플레이어
avPro player가 AVPro일 때 켭니다
capture AVPro 전용. Create Video Player가 설정합니다
target Unity 플레이어 전용. Create Video Player가 설정합니다
speakers 볼륨과 음소거가 설정하는 AudioSource
playlist 대기열이 비면 재생합니다. 선택 사항
autoplay 인스턴스가 열릴 때 재생목록을 시작합니다
startLocked 잠긴 상태로 인스턴스를 엽니다
moderators 언제든 플레이어를 조작하고 잠금을 바꿀 수 있는 표시 이름
tolerance 클라이언트가 어긋나도 되는 초. 넘으면 다시 탐색합니다. 기본 1
startVolume 각 플레이어가 바꾸기 전까지의 볼륨. 0부터 1

명령

동영상을 바꾸는 명령은 먼저 잠금을 확인합니다. 거부된 호출은 아무것도 바꾸지 않고, Status에 4초 동안 안내를 띄웁니다.

멤버
PlayUrl(VRCUrl) 대기열은 그대로 두고 링크를 지금 재생합니다
Enqueue(VRCUrl) 링크를 대기열에 넣고, 아무것도 재생 중이 아니면 재생합니다. 최대 20개
PlayEntry(int) 재생목록 항목을 재생합니다
PlayFromQueue(int) 대기열 항목을 지금 재생하고 대기열에서 뺍니다
Play() 재개합니다. 아무것도 재생 중이 아니면 대기열이나 재생목록의 다음 것을 시작합니다
Pause() 모두를 위해 일시정지합니다. 라이브 방송은 일시정지할 수 없습니다
TogglePause() 재생 중이면 Pause, 아니면 Play
Seek(float) 동영상의 비율(0부터 1) 위치로 탐색합니다
SeekTo(float) 초로 지정한 위치로 탐색합니다
Skip() 대기열이나 재생목록의 다음 것을 재생하고, 없으면 멈춥니다
Stop() 대기열은 남겨 두고 모두를 위해 멈춥니다
Reload() 이 클라이언트에서만 링크를 다시 불러오고, 방의 위치로 다시 탐색합니다
SetLooping(bool) 지금 동영상을 모두에게 반복합니다
SetLocked(bool) 잠그거나 풉니다. 인스턴스 오너, 마스터, 모더레이터만 할 수 있습니다
RemoveFromQueue(int) 대기열에서 하나를 뺍니다
ClearQueue() 대기열을 비웁니다
SetVolume(float) 이 플레이어 자신의 볼륨. 0부터 1
SetMuted(bool) 이 플레이어 자신의 음소거

상태

멤버
int Revision 시계를 빼고, UI가 보여주는 것이 바뀔 때마다 움직입니다
int State Idle, Loading, Playing, Paused, Failed. VideoPlayer의 상수입니다
bool IsIdle, IsLoading, IsPlaying, IsPaused, HasFailed 같은 것을 하나씩
bool HasVideo 아직 재생 전이라도 링크가 정해져 있음
bool IsLive 끝이 없는 스트림을 재생 중. 일시정지도 탐색도 할 수 없습니다
bool CanSeek 재생 중이거나 일시정지 중이고, 라이브가 아님
bool Showing 스크린에 화면이 나오고 있음
string Title 재생목록 제목, 또는 붙여 넣은 링크의 짧은 라벨
string AddedBy 지금 동영상을 추가한 사람. 재생목록이면 비어 있음
string Url 지금 링크
string Status 안내, 문제, 또는 Loading, Playing, Live, Paused, Nothing playing
string Problem 마지막 불러오기가 실패한 이유. 다음 불러오기까지 남습니다
float Position 이 클라이언트에서의 재생 위치(초)
float Duration 길이(초). 라이브면 0
float Progress 재생 위치를 길이로 나눈 값. 0부터 1
bool Looping, bool Locked 동기화되는 설정
float Volume, bool Muted 이 플레이어 자신의 소리
int QueueCount 기다리는 항목 수
string QueueTitle(int), string QueueAddedBy(int) 항목 하나
string NextTitle 다음에 나올 것. 대기열이나 섞지 않은 재생목록에서
int PlaylistEntry 재생 중인 재생목록 항목, 또는 NoEntry
string OwnerName 지금 플레이어를 소유한 사람
bool CanControl, bool CanModerate 로컬 플레이어가 할 수 있는 것
bool MayControl(VRCPlayerApi), bool MayModerate(VRCPlayerApi) 같은 것을, 누구에 대해서든
Texture Picture 지금 프레임. 직접 만든 스크린용

VideoScreen

머티리얼이 Udonite/Video/Screen을 쓰는 렌더러라면 어디에든 붙일 수 있습니다. 동영상을 aspect(면의 너비 나누기 높이)에 맞춰 레터박스합니다. 플레이어 하나를 스크린 몇 개에든 비출 수 있습니다.

VideoPlaylist

필드
urls 링크. 순서대로
titles 링크마다의 제목. 비어 있으면 링크를 보여줍니다
shuffle 다음 항목을 무작위로 고릅니다. 재생 중인 것은 고르지 않습니다
repeat 마지막 다음에는 처음으로 돌아갑니다. 기본으로 켜짐

부품

모든 부품에는 player가 있고, VideoPart를 상속합니다.

부품 필드
VideoButton command, button, icon, activeSprite, inactiveSprite, activeColor, inactiveColor. Run()으로 코드에서 명령을 실행합니다
VideoLabel field, text(TextMeshPro), legacyText, prefix, emptyText
VideoSlider mode(Seek 또는 Volume), slider
VideoLinkField field, enterPlaysNow
VideoShowWhen condition, invert, targets, spinner, spinSpeed
VideoQueueRow index, content, title, detail, detailPrefix, playButton, removeButton

VideoPart 자체에는 하위 클래스가 반드시 구현하는 Refresh()와, 재정의해도 되는 Tick(), Connect()가 있습니다. Connect는 플레이어가 준비되면 첫 Refresh 전에 한 번 실행됩니다.

플레이어가 링크 문자열에 쓰는 평범한 함수로, 내 코드에서도 쓸 수 있습니다.

멤버
float StartSeconds(string) 링크가 t=나 start=로 요청한 시작 시각. 없으면 0
string YouTubeId(string) 어떤 모양의 YouTube 링크에서든 동영상 ID. 없으면 빈 문자열
string Label(string) 붙여 넣은 링크를 보여줄 때의 짧은 라벨

에디터

메뉴 항목과 인스펙터 버튼은 모두 VideoSetup을 감싼 것뿐이라, 에디터 스크립트나 에이전트도 클릭 없이 같은 일을 할 수 있습니다. 모든 호출은 만든 것을 돌려주고, Add 호출은 이미 있으면 두 번째를 만들지 않고 그것을 돌려줍니다.

멤버
CreatePlayer(Vector3, Quaternion, VideoBackend) 플레이어 한 세트. 직접 링크 파일만이라면 VideoBackend.Unity
AddScreen(VideoPlayer, Renderer) 아무 렌더러에 스크린 하나 더
AddControls(VideoPlayer), AddOverlay(VideoPlayer) 기본 패널이나 스크린 상태 표시를, 없는 플레이어에
AddPlaylist(VideoPlayer, bool autoplay) 플레이어에 재생목록
AddToPlaylist(VideoPlaylist, string link, string title) 항목 하나
FetchTitles(VideoPlaylist) YouTube 항목의 빠진 제목을 YouTube에서 채웁니다
SetModerators(VideoPlayer, string[], bool startLocked) 언제든 조작할 수 있는 사람
ConnectAudioLink(VideoPlayer) 씬의 AudioLink를 스피커에 연결합니다
Apply() 모든 Udonite 비헤이비어를 컴파일해, 스크립트에서 설정한 값을 Udon 프로그램에 전달합니다

메뉴 경로는 VideoMenu.Create에 있어 EditorApplication.ExecuteMenuItem에 쓸 수 있습니다.

문제가 발생했습니다 새로 고침