using UdonSharp; using UnityEngine; using VRC.SDK3.Components; using VRC.Udon.Common; [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] public class Umbrella : UdonSharpBehaviour { [SerializeField] Animator _Animator; [SerializeField] VRCObjectSync _ObjectSync; [UdonSynced] private bool _Open = false; public override void OnDeserialization(DeserializationResult Result) { _Open_Synced(); base.OnDeserialization(Result); } public override void OnPickupUseDown() { _Open = !_Open; _Open_Synced(); RequestSerialization(); base.OnPickupUseDown(); } public void Respawn() { Open(false); _ObjectSync.Respawn(); } public void Open(bool Open) { _Open = Open; _Open_Synced(); RequestSerialization(); } private void _Open_Synced() { _Animator.SetBool("Open", _Open); } }