Files
Northbound/Assets/Scripts/PlayerResourceInventory.cs
dal4segno 10b496dfae 네트워크 멀티플레이 환경 문제 수정
관련 문제가 다시 발생하면 이 커밋으로 돌아올 것
2026-02-02 04:24:14 +09:00

60 lines
1.6 KiB
C#

using Unity.Netcode;
using UnityEngine;
namespace Northbound
{
public class PlayerResourceInventory : NetworkBehaviour
{
public int maxResourceCapacity = 100;
private int _displayAmount = 0;
public int CurrentResourceAmount => _displayAmount;
public int MaxResourceCapacity => maxResourceCapacity;
public override void OnNetworkSpawn()
{
if (IsClient && IsOwner)
{
RequestResourceUpdateServerRpc();
}
}
[Rpc(SendTo.Server)]
public void RequestResourceUpdateServerRpc()
{
var resourceManager = ServerResourceManager.Instance;
if (resourceManager != null)
{
int amount = resourceManager.GetPlayerResourceAmount(OwnerClientId);
UpdateResourceAmountClientRpc(amount);
}
}
[Rpc(SendTo.ClientsAndHost)]
private void UpdateResourceAmountClientRpc(int amount)
{
_displayAmount = amount;
}
public bool CanAddResource(int amount)
{
var resourceManager = ServerResourceManager.Instance;
if (resourceManager != null)
{
return resourceManager.CanAddResource(OwnerClientId, amount);
}
return false;
}
public int GetAvailableSpace()
{
var resourceManager = ServerResourceManager.Instance;
if (resourceManager != null)
{
return resourceManager.GetAvailableSpace(OwnerClientId);
}
return 0;
}
}
}