81 lines
1.4 KiB
C#
81 lines
1.4 KiB
C#
|
|
using UdonSharp;
|
|
using UnityEngine;
|
|
using VRC.SDKBase;
|
|
using VRC.Udon;
|
|
using TMPro;
|
|
using VRC.SDK3.Components;
|
|
|
|
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
|
|
public class PlayerPodium : UdonSharpBehaviour
|
|
{
|
|
public int PlayerNumber = 0;
|
|
|
|
public GameManager GameManager;
|
|
|
|
[UdonSynced, FieldChangeCallback(nameof(PlayerName))] private string _PlayerName = "Player";
|
|
[UdonSynced] public int PlayerID = -1;
|
|
[UdonSynced, FieldChangeCallback(nameof(PlayerScore))] private int _PlayerScore = 50;
|
|
|
|
public TextMeshProUGUI Nameplate;
|
|
public TextMeshProUGUI Scorecard;
|
|
|
|
void Start()
|
|
{
|
|
PlayerName = "Player " + PlayerNumber;
|
|
}
|
|
|
|
|
|
public void SetPlayerName()
|
|
{
|
|
if (PlayerID != -1) { return; }
|
|
Networking.SetOwner(Networking.LocalPlayer, gameObject);
|
|
PlayerName = Networking.LocalPlayer.displayName;
|
|
PlayerID = Networking.LocalPlayer.playerId;
|
|
}
|
|
|
|
public void BuzzIn()
|
|
{
|
|
GameManager.PlayerBuzzedIn(PlayerNumber);
|
|
}
|
|
|
|
public void DecreaseScoreBy5()
|
|
{
|
|
PlayerScore -= 5;
|
|
}
|
|
|
|
public void IncreaseScoreBy5()
|
|
{
|
|
PlayerScore += 5;
|
|
}
|
|
|
|
public void IncreaseScoreBy10()
|
|
{
|
|
PlayerScore += 10;
|
|
}
|
|
|
|
|
|
public string PlayerName
|
|
{
|
|
set
|
|
{
|
|
_PlayerName = value;
|
|
Nameplate.text = value;
|
|
|
|
RequestSerialization();
|
|
}
|
|
get => _PlayerName;
|
|
}
|
|
|
|
public int PlayerScore
|
|
{
|
|
set
|
|
{
|
|
_PlayerScore = value;
|
|
Scorecard.text = PlayerScore.ToString();
|
|
RequestSerialization();
|
|
}
|
|
get => _PlayerScore;
|
|
}
|
|
}
|