- Jail player now disappears when round 2 is initialised or deinitialised. - Phone box cover now syncs when closed automatically.
62 lines
1.1 KiB
C#
62 lines
1.1 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()
|
|
{
|
|
Networking.SetOwner(Networking.LocalPlayer, gameObject);
|
|
|
|
_OpenDoor = false;
|
|
_OpenDoor_Synced();
|
|
RequestSerialization();
|
|
}
|
|
}
|