using System.Collections; using UnityEngine; using Unity.Netcode; using Northbound; public class NetworkDebug : MonoBehaviour { private void Start() { Debug.Log("=== NETWORK DEBUG INFO ==="); // 1. NetworkManager 상태 if (NetworkManager.Singleton != null) { Debug.Log($"NetworkManager: IsServer={NetworkManager.Singleton.IsServer}, IsClient={NetworkManager.Singleton.IsClient}, IsHost={NetworkManager.Singleton.IsHost}"); } // 2. 스폰 포인트 검색 PlayerSpawnPoint[] spawnPoints = FindObjectsByType(FindObjectsSortMode.None); Debug.Log($"PlayerSpawnPoints: Found {spawnPoints.Length} objects"); foreach (var sp in spawnPoints) { Debug.Log($" - {sp.name} at {sp.transform.position}, isAvailable={sp.isAvailable}, spawnIndex={sp.spawnIndex}"); } // 3. NetworkConnectionHandler 확인 var connectionHandler = FindObjectOfType(); if (connectionHandler != null) { Debug.Log($"NetworkConnectionHandler: spawnPoints.Count={connectionHandler.spawnPoints.Count}, findAuto={connectionHandler.findSpawnPointsAutomatically}"); } // 4. NetworkSpawnManager 확인 var spawnManager = FindObjectOfType(); if (spawnManager != null) { Debug.Log($"NetworkSpawnManager: spawnPoints.Count={spawnManager.spawnPoints.Count}, findAuto={spawnManager.findSpawnPointsAutomatically}"); } // 플레이어가 스폰될 때까지 대기 StartCoroutine(CheckPlayerAfterSpawn()); } private IEnumerator CheckPlayerAfterSpawn() { // 플레이어가 스폰될 때까지 최대 5초 대기 for (int i = 0; i < 50; i++) { yield return new WaitForSeconds(0.1f); var players = GameObject.FindObjectsByType(FindObjectsSortMode.None); if (players != null && players.Length > 0) { Debug.Log($"Found {players.Length} player(s) - checking equipment..."); foreach (var playerCtrl in players) { Debug.Log($"Player found: {playerCtrl.name}, IsOwner={playerCtrl.IsOwner}"); var equipmentSocketOnPlayer = playerCtrl.GetComponent(); var networkEquipSocketOnPlayer = playerCtrl.GetComponent(); if (equipmentSocketOnPlayer != null) Debug.Log($"Player has EquipmentSocket: YES"); else Debug.LogWarning($"Player has EquipmentSocket: NO"); if (networkEquipSocketOnPlayer != null) Debug.Log($"Player has NetworkEquipmentSocket: YES"); else Debug.LogWarning($"Player has NetworkEquipmentSocket: NO"); } Debug.Log("=== DEBUG INFO END ==="); yield break; } } // 5초 후에도 플레이어가 없는지 확인 var finalCheck = GameObject.FindObjectsByType(FindObjectsSortMode.None); if (finalCheck == null || finalCheck.Length == 0) { Debug.LogWarning($"Player did not spawn within 5 seconds!"); } } }