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