62 lines
1.2 KiB
C#
62 lines
1.2 KiB
C#
|
|
using UdonSharp;
|
|
using UnityEngine;
|
|
using VRC.SDK3.Video.Components.Base;
|
|
using VRC.SDKBase;
|
|
using VRC.Udon;
|
|
|
|
|
|
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
|
|
public class BasicSyncPlayer : UdonSharpBehaviour
|
|
{
|
|
[SerializeField] private GameManagerRound3 _GameManager;
|
|
[SerializeField] private BaseVRCVideoPlayer _VideoPlayer;
|
|
|
|
[UdonSynced, FieldChangeCallback(nameof(VideoIndex))] private int _VideoIndex = -1;
|
|
[UdonSynced, FieldChangeCallback(nameof(PlayVideo))] private bool _VideoIsPlaying;
|
|
|
|
|
|
private void _PlayVideo_Private()
|
|
{
|
|
Debug.LogWarning("[BasicSyncPlayer] Playing video " + VideoIndex + ".");
|
|
|
|
_VideoPlayer.Play();
|
|
}
|
|
|
|
private void _StopVideo_Private()
|
|
{
|
|
Debug.LogWarning("[BasicSyncPlayer] Stopping video " + VideoIndex + ".");
|
|
|
|
_VideoPlayer.Stop();
|
|
|
|
VideoIndex = -1;
|
|
}
|
|
|
|
|
|
public int VideoIndex
|
|
{
|
|
set
|
|
{
|
|
_VideoIndex = value;
|
|
if (VideoIndex >= 0)
|
|
{
|
|
_VideoPlayer.LoadURL(_GameManager.Endings[_VideoIndex]);
|
|
}
|
|
RequestSerialization();
|
|
}
|
|
get => _VideoIndex;
|
|
}
|
|
|
|
public bool PlayVideo
|
|
{
|
|
set
|
|
{
|
|
_VideoIsPlaying = value;
|
|
if (_VideoIsPlaying) _PlayVideo_Private();
|
|
else _StopVideo_Private();
|
|
RequestSerialization();
|
|
}
|
|
get => _VideoIsPlaying;
|
|
}
|
|
}
|