using UnityEngine; using Unity.Netcode; using Unity.BossRoom.Gameplay.GameplayObjects.Character; public class PlayerScoreComponent : NetworkBehaviour { public int CurrentScore { get; private set; } public ServerCharacter serverCharacter; public override void OnNetworkSpawn() { if (IsServer) { Debug.Log($"[PlayerScoreComponent] Initializing score for Player {OwnerClientId}"); ScoreManager.Instance?.InitializePlayerScoreServerRpc(OwnerClientId, serverCharacter.uIStateDisplayHandler.m_UIState.playerName); } } public void UpdateScore(int newScore) { CurrentScore = newScore; Debug.Log($"[PlayerScoreComponent] Player {OwnerClientId} score updated to {newScore}."); UpdateScoreUI(); } private void UpdateScoreUI() { // Update the player's score display in the UI. Debug.Log($"[PlayerScoreComponent] Updated score UI for Player {OwnerClientId}: {CurrentScore}"); } } //using UnityEngine; //using Unity.Netcode; //using Unity.BossRoom.Gameplay.GameplayObjects.Character; //public class PlayerScoreComponent : NetworkBehaviour //{ // public int CurrentScore { get; private set; } // public ServerCharacter serverCharacter; // public int m_index; // public PlayerItem playerItem; // public override void OnNetworkSpawn() // { // if (IsOwner && IsClient) // { // Debug.Log($"[PlayerScoreComponent] Requesting score initialization for Player {OwnerClientId}"); // ScoreManager.Instance?.InitializePlayerScore(OwnerClientId,serverCharacter.uIStateDisplayHandler.m_UIState.playerName); // } // // For the server player (host), ensure the PlayerScoreComponent is registered properly // if (IsServer && OwnerClientId == NetworkManager.Singleton.LocalClientId) // { // ScoreManager.Instance?.InitializePlayerScore(OwnerClientId, serverCharacter.uIStateDisplayHandler.m_UIState.playerName); // } // serverCharacter=GetComponent(); // } // public void UpdateScore(int newScore) // { // CurrentScore = newScore; // Debug.Log($"[PlayerScoreComponent] Player {OwnerClientId} score updated to {newScore}."); // UpdateScoreUI(); // } // private void UpdateScoreUI() // { // // Update the player's score display in the UI. // Debug.Log($"[PlayerScoreComponent] Updated score UI for Player {OwnerClientId}: {CurrentScore}"); // } // //private void OnDestroy() // //{ // // Destroy(playerItem.gameObject); // //} //}