2022-11-21 17:56:52 +01:00

54 lines
1.4 KiB
C#

using UnityEngine;
using VRC.SDKBase;
using UnityEngine.UI;
namespace VRCAudioLink
{
#if UDON
using UdonSharp;
using VRC.Udon;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class GlobalSlider : UdonSharpBehaviour
{
[UdonSynced]
private float syncedValue;
private bool deserializing;
private Slider slider;
private VRCPlayerApi localPlayer;
private void Start()
{
slider = transform.GetComponent<Slider>();
localPlayer = Networking.LocalPlayer;
syncedValue = slider.value;
deserializing = false;
if (Networking.IsOwner(gameObject))
RequestSerialization();
}
public override void OnDeserialization()
{
deserializing = true;
slider.value = syncedValue;
deserializing = false;
}
public void SlideUpdate()
{
if (deserializing)
return;
if (!Networking.IsOwner(gameObject))
Networking.SetOwner(localPlayer, gameObject);
syncedValue = slider.value;
RequestSerialization();
}
}
#else
public class GlobalSlider : MonoBehaviour
{
}
#endif
}