Jamie Greunbaum f8525d1aaa - Improved cameras with viewfinder toggles and an auto-level button.
- Enhanced camera bubble.
- Added placeholder player podiums.
- Added Crunch compression to more textures.
2025-05-25 21:34:10 -04:00

82 lines
1.5 KiB
C#

using System.Diagnostics;
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
public enum MusicEvent
{
INTERNAL = -1,
None,
WhereInTheWorld,
RockapellaIdent
}
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class GameManager : UdonSharpBehaviour
{
private bool BuzzInAllowed = false;
[Header("Player Data")]
public PlayerPodium Player1Podium;
public PlayerPodium Player2Podium;
public PlayerPodium Player3Podium;
[Header("Audio")]
public AudioClip WhereInTheWorld = null;
public AudioClip RockapellaIdent = null;
private AudioSource AudioPlayer = null;
[UdonSynced, FieldChangeCallback(nameof(SetMusicEvent))] private MusicEvent _MusicEvent = MusicEvent.None;
void Start()
{
AudioPlayer = GetComponent<AudioSource>();
}
public void PlayerBuzzedIn(int PlayerID)
{
if (!BuzzInAllowed) { return; }
BuzzInAllowed = false;
}
public void CancelBuzzIn() { BuzzInAllowed = true; }
public void PlayWhereInTheWorld()
{
SetMusicEvent = MusicEvent.WhereInTheWorld;
RequestSerialization();
}
public void PlayRockapellaIdent()
{
SetMusicEvent = MusicEvent.RockapellaIdent;
RequestSerialization();
}
public MusicEvent SetMusicEvent
{
set
{
_MusicEvent = value;
AudioPlayer.Stop();
switch(_MusicEvent)
{
case MusicEvent.WhereInTheWorld: AudioPlayer.clip = WhereInTheWorld; break;
case MusicEvent.RockapellaIdent: AudioPlayer.clip = RockapellaIdent; break;
default: break;
}
if (_MusicEvent != MusicEvent.None)
AudioPlayer.Play();
}
get => _MusicEvent;
}
}