Universally challenged fixed
This commit is contained in:
@@ -1,16 +1,91 @@
|
||||
|
||||
using UdonSharp;
|
||||
using UnityEngine;
|
||||
using VRC.SDK3.UdonNetworkCalling;
|
||||
using VRC.SDKBase;
|
||||
using VRC.Udon;
|
||||
|
||||
public class UniversallyChallengedManager : UdonSharpBehaviour
|
||||
{
|
||||
[UdonSynced] public bool isBuzzersEnabled = false;
|
||||
[UdonSynced] public bool areSirensActivated = false;
|
||||
|
||||
public Light[] lights;
|
||||
public AudioSource sirenAudioSource;
|
||||
public Animator[] turretAnimators;
|
||||
|
||||
public void EnableBuzzers()
|
||||
{
|
||||
isBuzzersEnabled = true;
|
||||
RequestSerialization();
|
||||
}
|
||||
|
||||
public void HandleSirenButton()
|
||||
{
|
||||
areSirensActivated = !areSirensActivated;
|
||||
UpdateLights();
|
||||
HandleAudio();
|
||||
RequestSerialization();
|
||||
}
|
||||
|
||||
private void HandleAudio()
|
||||
{
|
||||
if (sirenAudioSource != null)
|
||||
{
|
||||
if (areSirensActivated)
|
||||
{
|
||||
sirenAudioSource.Play();
|
||||
}
|
||||
else
|
||||
{
|
||||
sirenAudioSource.Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateLights()
|
||||
{
|
||||
for (int i = 0; i < lights.Length; i++)
|
||||
{
|
||||
lights[i].intensity = areSirensActivated ? 50f : 0f;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDeserialization()
|
||||
{
|
||||
UpdateLights();
|
||||
// Only sync audio if this is not the owner (owner already plays it in HandleSirenButton)
|
||||
if (!Networking.IsOwner(gameObject))
|
||||
{
|
||||
HandleAudio();
|
||||
}
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (areSirensActivated)
|
||||
{
|
||||
for (int i = 0; i < lights.Length; i++)
|
||||
{
|
||||
lights[i].transform.rotation *= Quaternion.Euler(0, Time.deltaTime * 200f, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void HandleGunButtonPress()
|
||||
{
|
||||
SendCustomNetworkEvent(VRC.Udon.Common.Interfaces.NetworkEventTarget.All, "ActivateGunTurrets");
|
||||
}
|
||||
|
||||
[NetworkCallable]
|
||||
public void ActivateGunTurrets()
|
||||
{
|
||||
if (turretAnimators != null)
|
||||
{
|
||||
for (int i = 0; i < turretAnimators.Length; i++)
|
||||
{
|
||||
turretAnimators[i].SetTrigger("StartGunLower");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user