Buzz-in system has been fully implemented.
This commit is contained in:
@@ -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
@@ -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:
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user