Files
Northbound/Assets/Scripts/PlayerResourceInventory.cs
dal4segno c74d6d2ebd 플레이어의 최대 자원이 플레이어에 정의한 값을 사용하도록 함
50으로 설정해도 100으로 작동하는 문제가 해결됨
2026-02-04 11:18:54 +09:00

71 lines
2.0 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;
[Rpc(SendTo.Server)]
private void SetMaxCapacityServerRpc(int maxCapacity)
{
var resourceManager = ServerResourceManager.Instance;
if (resourceManager != null)
{
resourceManager.SetPlayerMaxCapacity(OwnerClientId, maxCapacity);
}
}
public override void OnNetworkSpawn()
{
if (IsClient && IsOwner)
{
SetMaxCapacityServerRpc(maxResourceCapacity);
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;
}
}
}