Buzz-in system has been fully implemented.

This commit is contained in:
Jamie Greunbaum
2025-05-27 03:33:12 -04:00
parent dffc0665ef
commit 06e078f593
42 changed files with 988 additions and 1404 deletions
+4 -2
View File
@@ -1,6 +1,8 @@
using UdonSharp;
using UnityEngine;
using VRC.SDK3.UdonNetworkCalling;
using VRC.Udon.Common.Interfaces;
using VRC.SDKBase;
using VRC.Udon;
@@ -11,9 +13,9 @@ public class Buzzer : UdonSharpBehaviour
public override void OnPickupUseDown()
{
VRCPlayerApi LocalPlayer = Networking.LocalPlayer;
if (Podium.PlayerID == LocalPlayer.playerId)
if (Podium.GetPlayerID() == LocalPlayer.playerId)
{
Podium.BuzzIn();
NetworkCalling.SendCustomNetworkEvent((IUdonEventReceiver)Podium.GameManager, NetworkEventTarget.All, "PlayerBuzzedIn", Podium.PlayerNumber);
}
base.OnPickupUseDown();
+157 -199
View File
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 10
Data: 9
- Name:
Entry: 7
Data:
@@ -155,7 +155,7 @@ MonoBehaviour:
Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
Data: 2
- Name:
Entry: 7
Data: 10|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
@@ -165,6 +165,12 @@ MonoBehaviour:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 11|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
@@ -185,7 +191,7 @@ MonoBehaviour:
Data: WhereInTheWorld
- Name: $v
Entry: 7
Data: 11|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: WhereInTheWorld
@@ -209,10 +215,16 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 12|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
Data: 1
- Name:
Entry: 7
Data: 14|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
@@ -231,63 +243,69 @@ MonoBehaviour:
- Name: $k
Entry: 1
Data: RockapellaIdent
- Name: $v
Entry: 7
Data: 13|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: RockapellaIdent
- Name: <UserType>k__BackingField
Entry: 9
Data: 8
- Name: <SystemType>k__BackingField
Entry: 9
Data: 8
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: MusicPlayer
- Name: $v
Entry: 7
Data: 15|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: RockapellaIdent
- Name: <UserType>k__BackingField
Entry: 9
Data: 8
- Name: <SystemType>k__BackingField
Entry: 9
Data: 8
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 16|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 17|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: MusicPlayer
- Name: $v
Entry: 7
Data: 18|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: MusicPlayer
- Name: <UserType>k__BackingField
Entry: 7
Data: 16|System.RuntimeType, mscorlib
Data: 19|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.AudioSource, UnityEngine.AudioModule
@@ -296,7 +314,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 16
Data: 19
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -311,79 +329,13 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 20|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _MusicEvent
- Name: $v
Entry: 7
Data: 18|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _MusicEvent
- Name: <UserType>k__BackingField
Entry: 7
Data: 19|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: MusicEventType, Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 7
Data: 20|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Int32, mscorlib
- Name:
Entry: 8
Data:
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 3
Data: 1
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 21|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 22|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 23|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime
Data: 21|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -407,16 +359,16 @@ MonoBehaviour:
Data: SFXPlayer
- Name: $v
Entry: 7
Data: 24|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 22|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: SFXPlayer
- Name: <UserType>k__BackingField
Entry: 9
Data: 16
Data: 19
- Name: <SystemType>k__BackingField
Entry: 9
Data: 16
Data: 19
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -431,73 +383,13 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 25|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _SFXEvent
- Name: $v
Entry: 7
Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _SFXEvent
- Name: <UserType>k__BackingField
Entry: 7
Data: 27|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: SFXEventType, Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 20
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 3
Data: 1
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 29|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 30|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime
Data: 24|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -521,13 +413,13 @@ MonoBehaviour:
Data: BuzzInAllowed
- Name: $v
Entry: 7
Data: 31|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: BuzzInAllowed
- Name: <UserType>k__BackingField
Entry: 7
Data: 32|System.RuntimeType, mscorlib
Data: 26|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Boolean, mscorlib
@@ -536,7 +428,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 32
Data: 26
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -551,13 +443,73 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 33|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 27|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 34|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
Data: 28|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: PlayerBuzzInAllowed
- Name: $v
Entry: 7
Data: 29|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: PlayerBuzzInAllowed
- Name: <UserType>k__BackingField
Entry: 7
Data: 30|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Boolean[], mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 30
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 3
Data: 1
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 32|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
@@ -581,16 +533,22 @@ MonoBehaviour:
Data: _BuzzedInPlayer
- Name: $v
Entry: 7
Data: 35|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 33|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _BuzzedInPlayer
- Name: <UserType>k__BackingField
Entry: 9
Data: 20
Entry: 7
Data: 34|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Int32, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 20
Data: 34
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -605,13 +563,13 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 35|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 37|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
Data: 36|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
+64 -74
View File
@@ -1,12 +1,13 @@
using UdonSharp;
using UnityEngine;
using VRC.SDK3.UdonNetworkCalling;
using VRC.Udon.Common.Interfaces;
using VRC.SDKBase;
using VRC.Udon;
using System.Linq;
public enum MusicEventType
{
INTERNAL = -1,
None,
WhereInTheWorld,
RockapellaIdent
@@ -14,7 +15,6 @@ public enum MusicEventType
public enum SFXEventType
{
INTERNAL = -1,
None,
Buzzer
}
@@ -26,112 +26,102 @@ public class GameManager : UdonSharpBehaviour
public PlayerPodium[] PlayerPodiums;
[Header("Audio")]
public AudioClip BuzzerSound = null;
[SerializeField] private AudioClip BuzzerSound = null;
public AudioClip WhereInTheWorld = null;
public AudioClip RockapellaIdent = null;
[SerializeField] private AudioClip WhereInTheWorld = null;
[SerializeField] private AudioClip RockapellaIdent = null;
public AudioSource MusicPlayer = null;
[UdonSynced, FieldChangeCallback(nameof(MusicEvent))] private MusicEventType _MusicEvent = MusicEventType.None;
public AudioSource SFXPlayer = null;
[UdonSynced, FieldChangeCallback(nameof(SFXEvent))] private SFXEventType _SFXEvent = SFXEventType.None;
[SerializeField] private AudioSource MusicPlayer = null;
[SerializeField] private AudioSource SFXPlayer = null;
[UdonSynced] private bool BuzzInAllowed = true;
[UdonSynced] private int _BuzzedInPlayer = 0;
[UdonSynced] private bool[] PlayerBuzzInAllowed;
[UdonSynced] private int _BuzzedInPlayer = -1;
void Start()
{
PlayerBuzzInAllowed = new bool[PlayerPodiums.Length];
}
[NetworkCallable]
public void PlayerBuzzedIn(int PlayerNumber)
{
if (!BuzzInAllowed) { return; }
int PlayerIndex = PlayerNumber - 1;
if (!BuzzInAllowed || !PlayerBuzzInAllowed[PlayerIndex]) { return; }
// Prevent new buzz-ins and store which player is currently buzzed in.
BuzzInAllowed = false;
PlayerBuzzInAllowed[PlayerIndex] = false;
_BuzzedInPlayer = PlayerNumber;
SFXEvent = SFXEventType.Buzzer;
RequestSerialization();
PlayerPodiums[PlayerNumber - 1].IncreaseScoreBy10();
PlayerPodiums[PlayerNumber - 1].RequestSerialization();
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)PlayerPodiums[PlayerIndex],
NetworkEventTarget.All,
"EnableBuzzInEffect", true);
// Play the buzzer sound globally.
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(PlaySFX), SFXEventType.Buzzer);
}
public void CancelBuzzIn() {
public void CancelPlayerBuzzIn() {
BuzzInAllowed = true;
_BuzzedInPlayer = 0;
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)PlayerPodiums[_BuzzedInPlayer - 1],
NetworkEventTarget.All,
"EnableBuzzInEffect", false);
_BuzzedInPlayer = -1;
RequestSerialization();
}
public void StartGame()
public void ResetBuzzers()
{
for (int i = 0; i < PlayerPodiums.Length; i++)
{
Networking.SetOwner(Networking.InstanceOwner, PlayerPodiums[i].gameObject);
}
PlayerPodiums[0].IncreaseScoreBy10();
PlayerPodiums[0].RequestSerialization();
PlayerPodiums[1].IncreaseScoreBy5();
PlayerPodiums[1].RequestSerialization();
PlayerPodiums[2].DecreaseScoreBy5();
PlayerPodiums[2].RequestSerialization();
BuzzInAllowed = true;
for (int i = 0; i < PlayerPodiums.Length; i++) { PlayerBuzzInAllowed[i] = true; }
_BuzzedInPlayer = -1;
}
public void PlayWhereInTheWorld()
{
MusicEvent = MusicEventType.WhereInTheWorld;
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(PlayMusic), MusicEventType.WhereInTheWorld);
}
public void PlayRockapellaIdent()
{
MusicEvent = MusicEventType.RockapellaIdent;
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(PlayMusic), MusicEventType.RockapellaIdent);
}
[NetworkCallable]
public void PlayMusic(MusicEventType MusicEvent)
{
MusicPlayer.Stop();
switch (MusicEvent)
{
case MusicEventType.WhereInTheWorld: MusicPlayer.clip = WhereInTheWorld; break;
case MusicEventType.RockapellaIdent: MusicPlayer.clip = RockapellaIdent; break;
default: MusicPlayer.clip = null; break;
}
if (MusicPlayer.clip != null)
MusicPlayer.Play();
}
public MusicEventType MusicEvent
[NetworkCallable]
public void PlaySFX(SFXEventType SFXEvent)
{
set
SFXPlayer.Stop();
switch (SFXEvent)
{
_MusicEvent = value;
MusicPlayer.Stop();
switch(_MusicEvent)
{
case MusicEventType.WhereInTheWorld: MusicPlayer.clip = WhereInTheWorld; break;
case MusicEventType.RockapellaIdent: MusicPlayer.clip = RockapellaIdent; break;
default: break;
}
if (_MusicEvent != MusicEventType.None)
MusicPlayer.Play();
RequestSerialization();
case SFXEventType.Buzzer: SFXPlayer.clip = BuzzerSound; break;
default: SFXPlayer.clip = null; break;
}
get => _MusicEvent;
}
public SFXEventType SFXEvent
{
set
{
_SFXEvent = value;
SFXPlayer.Stop();
switch (_SFXEvent)
{
case SFXEventType.Buzzer: SFXPlayer.clip = BuzzerSound; break;
default: break;
}
if (_SFXEvent != SFXEventType.None)
SFXPlayer.Play();
RequestSerialization();
}
get => _SFXEvent;
if (SFXPlayer.clip != null)
SFXPlayer.Play();
}
}
+97 -16
View File
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 7
Data: 8
- Name:
Entry: 7
Data:
@@ -230,13 +230,13 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: PlayerID
Data: _PlayerID
- Name: $v
Entry: 7
Data: 14|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: PlayerID
Data: _PlayerID
- Name: <UserType>k__BackingField
Entry: 9
Data: 3
@@ -254,7 +254,7 @@ MonoBehaviour:
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 15|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
@@ -344,19 +344,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: Nameplate
Data: _BuzzedInEffect
- Name: $v
Entry: 7
Data: 21|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: Nameplate
Data: _BuzzedInEffect
- Name: <UserType>k__BackingField
Entry: 7
Data: 22|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: TMPro.TextMeshProUGUI, Unity.TextMeshPro
Data: UnityEngine.GameObject, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -380,7 +380,22 @@ MonoBehaviour:
Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
Data: 2
- Name:
Entry: 7
Data: 24|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
- Name: header
Entry: 1
Data: Effects
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 25|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
@@ -398,19 +413,25 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: Scorecard
Data: _Nameplate
- Name: $v
Entry: 7
Data: 24|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: Scorecard
Data: _Nameplate
- Name: <UserType>k__BackingField
Entry: 9
Data: 22
Entry: 7
Data: 27|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: TMPro.TextMeshProUGUI, Unity.TextMeshPro
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 22
Data: 27
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -425,10 +446,70 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 25|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
Data: 1
- Name:
Entry: 7
Data: 29|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _Scorecard
- Name: $v
Entry: 7
Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Scorecard
- Name: <UserType>k__BackingField
Entry: 9
Data: 27
- Name: <SystemType>k__BackingField
Entry: 9
Data: 27
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 32|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
+23 -16
View File
@@ -1,10 +1,9 @@
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
using VRC.SDK3.UdonNetworkCalling;
using TMPro;
using VRC.SDK3.Components;
using UnityEngine;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class PlayerPodium : UdonSharpBehaviour
@@ -14,11 +13,14 @@ public class PlayerPodium : UdonSharpBehaviour
public GameManager GameManager;
[UdonSynced, FieldChangeCallback(nameof(PlayerName))] private string _PlayerName = "Player";
[UdonSynced] public int PlayerID = -1;
[UdonSynced] private int _PlayerID = -1;
[UdonSynced, FieldChangeCallback(nameof(PlayerScore))] private int _PlayerScore = 50;
public TextMeshProUGUI Nameplate;
public TextMeshProUGUI Scorecard;
[Header("Effects")]
[SerializeField] private GameObject _BuzzedInEffect;
[SerializeField] private TextMeshProUGUI _Nameplate;
[SerializeField] private TextMeshProUGUI _Scorecard;
void Start()
{
@@ -28,16 +30,15 @@ public class PlayerPodium : UdonSharpBehaviour
public void SetPlayerName()
{
if (PlayerID != -1) { return; }
if (_PlayerID != -1) { return; }
Networking.SetOwner(Networking.LocalPlayer, gameObject);
PlayerName = Networking.LocalPlayer.displayName;
PlayerID = Networking.LocalPlayer.playerId;
_PlayerID = Networking.LocalPlayer.playerId;
RequestSerialization();
}
public void BuzzIn()
{
GameManager.PlayerBuzzedIn(PlayerNumber);
}
public int GetPlayerID() { return _PlayerID; }
public void DecreaseScoreBy5()
{
@@ -49,20 +50,26 @@ public class PlayerPodium : UdonSharpBehaviour
PlayerScore += 5;
}
[NetworkCallable]
public void IncreaseScoreBy10()
{
PlayerScore += 10;
}
[NetworkCallable]
public void EnableBuzzInEffect(bool Enable)
{
_BuzzedInEffect.SetActive(Enable);
}
public string PlayerName
{
set
{
_PlayerName = value;
Nameplate.text = value;
RequestSerialization();
_Nameplate.text = value;
}
get => _PlayerName;
}
@@ -72,7 +79,7 @@ public class PlayerPodium : UdonSharpBehaviour
set
{
_PlayerScore = value;
Scorecard.text = PlayerScore.ToString();
_Scorecard.text = PlayerScore.ToString();
RequestSerialization();
}
get => _PlayerScore;