플레이어 스폰 포인트 기능 오류 수정 및 기본 오브젝트 배치 수정

This commit is contained in:
2026-01-26 09:30:37 +09:00
parent aa086a7a2b
commit ee2b27d0a0
6 changed files with 938 additions and 164 deletions

View File

@@ -18,17 +18,25 @@ namespace Northbound
private Dictionary<ulong, int> _clientSpawnIndices = new Dictionary<ulong, int>();
private int _nextSpawnIndex = 0;
private void Start()
// ⭐ Awake에서 스폰 포인트 먼저 찾고, 콜백 등록
private void Awake()
{
// 1⃣ 먼저 스폰 포인트 찾기
if (findSpawnPointsAutomatically)
{
FindSpawnPoints();
}
// 2⃣ 그 다음 콜백 등록
if (NetworkManager.Singleton != null)
{
NetworkManager.Singleton.ConnectionApprovalCallback = ApprovalCheck;
NetworkManager.Singleton.OnServerStarted += OnServerStarted;
Debug.Log("<color=cyan>[Connection] ConnectionApprovalCallback 등록됨</color>");
}
else
{
Debug.LogError("[Connection] NetworkManager.Singleton이 null입니다!");
}
}
@@ -60,6 +68,12 @@ namespace Northbound
NetworkManager.ConnectionApprovalRequest request,
NetworkManager.ConnectionApprovalResponse response)
{
// 🔍 디버깅: 스폰 포인트 상태 확인
if (spawnPoints.Count == 0)
{
Debug.LogError($"<color=red>[Connection] 스폰 포인트가 없습니다! 씬에 PlayerSpawnPoint가 있는지 확인하세요.</color>");
}
response.Approved = true;
response.CreatePlayerObject = true;
@@ -67,7 +81,7 @@ namespace Northbound
response.Position = GetSpawnPosition(request.ClientNetworkId);
response.Rotation = GetSpawnRotation(request.ClientNetworkId);
Debug.Log($"<color=cyan>[Connection] 클라이언트 {request.ClientNetworkId} 승인됨. 스폰 위치: {response.Position}</color>");
Debug.Log($"<color=green>[Connection] 클라이언트 {request.ClientNetworkId} 승인됨. 스폰 위치: {response.Position}</color>");
}
private Vector3 GetSpawnPosition(ulong clientId)
@@ -94,6 +108,7 @@ namespace Northbound
spawnIndex = _clientSpawnIndices[clientId];
}
Debug.Log($"<color=yellow>[Connection] 클라이언트 {clientId}에게 스폰 인덱스 {spawnIndex} 할당</color>");
return spawnPoints[spawnIndex].position;
}