Jamie Greunbaum 2fa20670ac - Added a phone box around the phone in round 2.
- Added a callback class to allow interactions to send signals to non-pickups.
- Round 2 phone now syncs with VRCObjectSync, like many simple pick-ups now do.
- Doors can now choose whether they auto-close.
- GameManagers now enable and disable live lights as necessary.
- More transparent textures now have "Alpha is transparency" enabled.
- Podium prefab shifted slightly in its default position. This changes nothing.
2026-05-15 02:10:09 -04:00

60 lines
1.0 KiB
C#

using Newtonsoft.Json.Linq;
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon.Common;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class Door : UdonSharpBehaviour
{
[UdonSynced] private bool _OpenDoor = false;
[SerializeField] private Animator _OpenAnimation;
[SerializeField] private bool _AutoCloseDoor;
public override void OnDeserialization(DeserializationResult Result)
{
_OpenDoor_Synced();
base.OnDeserialization(Result);
}
public override void Interact()
{
Networking.SetOwner(Networking.LocalPlayer, gameObject);
if (!_OpenDoor)
{
_OpenDoor = true;
_OpenDoor_Synced();
RequestSerialization();
if (_AutoCloseDoor)
{
SendCustomEventDelayedSeconds(nameof(CloseDoor), 1.5f);
}
}
else if (!_AutoCloseDoor)
{
CloseDoor();
}
base.Interact();
}
private void _OpenDoor_Synced()
{
_OpenAnimation.SetBool("Open", _OpenDoor);
}
public void CloseDoor()
{
_OpenDoor = false;
_OpenDoor_Synced();
RequestSerialization();
}
}