네트워크 멀티플레이 대응

This commit is contained in:
2026-01-31 20:49:23 +09:00
parent 1152093521
commit c5bcf265d0
69 changed files with 2766 additions and 1392 deletions

View File

@@ -45,7 +45,7 @@ namespace Northbound
public override void OnNetworkSpawn()
{
if (IsServer)
if (IsOwner)
{
_currentResources.Value = maxResources;
_lastRechargeTime = Time.time;
@@ -54,7 +54,7 @@ namespace Northbound
private void Update()
{
if (!IsServer)
if (!IsOwner)
return;
// 자원 충전 로직
@@ -88,7 +88,7 @@ namespace Northbound
{
if (client.PlayerObject != null)
{
var playerInventory = client.PlayerObject.GetComponent<PlayerResourceInventory>();
var playerInventory = client.PlayerObject.GetComponent<PlayerInventory>();
if (playerInventory != null)
{
// 플레이어가 받을 수 있는 공간이 없으면 상호작용 불가
@@ -120,10 +120,10 @@ namespace Northbound
if (playerObject == null)
return;
var playerInventory = playerObject.GetComponent<PlayerResourceInventory>();
var playerInventory = playerObject.GetComponent<PlayerInventory>();
if (playerInventory == null)
{
Debug.LogWarning($"플레이어 {playerId}에게 PlayerResourceInventory 컴포넌트가 없습니다.");
Debug.LogWarning($"플레이어 {playerId}에게 PlayerInventory 컴포넌트가 없습니다.");
return;
}
@@ -147,8 +147,8 @@ namespace Northbound
_currentResources.Value -= gatheredAmount;
_lastGatheringTime = Time.time;
// 플레이어에게 자원 추가
playerInventory.AddResourceServerRpc(gatheredAmount);
// 플레이어에게 자원 추가 (RPC로 owner에게 요청)
playerInventory.AddResourcesRpc(gatheredAmount);
Debug.Log($"플레이어 {playerId}가 {gatheredAmount} {resourceName}을(를) 채집했습니다. 남은 자원: {_currentResources.Value}");