모든 네트워크 오브젝트의 소유권을 서버가 갖도록 함
Distributable -> None 관련 사이드 이펙트로 인한 버그 수정
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user