모든 네트워크 오브젝트의 소유권을 서버가 갖도록 함

Distributable -> None
관련 사이드 이펙트로 인한 버그 수정
This commit is contained in:
2026-02-18 02:18:42 +09:00
parent da8c87d082
commit 4ffbbb0aff
10 changed files with 388 additions and 129 deletions

View File

@@ -171,9 +171,26 @@ namespace Northbound
ulong localClientId = NetworkManager.Singleton.LocalClientId;
// PlayerObject가 있으면 사용
if (NetworkManager.Singleton.ConnectedClients.TryGetValue(localClientId, out var client))
{
return client.PlayerObject?.gameObject;
if (client.PlayerObject != null)
{
return client.PlayerObject.gameObject;
}
}
// PlayerObject가 없으면 NetworkPlayerController로 찾기
// (서버 소유권으로 스폰한 경우 PlayerObject가 null일 수 있음)
var allNetworkObjects = NetworkManager.Singleton.SpawnManager.SpawnedObjects;
foreach (var kvp in allNetworkObjects)
{
var networkObj = kvp.Value;
var playerController = networkObj.GetComponent<NetworkPlayerController>();
if (playerController != null && playerController.IsLocalPlayer)
{
return networkObj.gameObject;
}
}
return null;