- 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.
60 lines
1.0 KiB
C#
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();
|
|
}
|
|
}
|