자원 채집 및 반환 기능
텍스트 기능 및 폰트 추가
This commit is contained in:
67
Assets/Scripts/CoreResourceManager.cs
Normal file
67
Assets/Scripts/CoreResourceManager.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Northbound
|
||||
{
|
||||
/// <summary>
|
||||
/// Core의 자원을 관리하고 다른 시스템에서 접근할 수 있도록 하는 매니저
|
||||
/// </summary>
|
||||
public class CoreResourceManager : MonoBehaviour
|
||||
{
|
||||
private static CoreResourceManager _instance;
|
||||
public static CoreResourceManager Instance => _instance;
|
||||
|
||||
[Header("References")]
|
||||
public Core mainCore; // 메인 코어 참조
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (_instance != null && _instance != this)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
|
||||
_instance = this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 자원을 사용할 수 있는지 확인
|
||||
/// </summary>
|
||||
public bool CanAfford(int cost)
|
||||
{
|
||||
if (mainCore == null)
|
||||
{
|
||||
Debug.LogWarning("메인 코어가 설정되지 않았습니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
return mainCore.CanConsumeResource(cost);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 자원을 소비
|
||||
/// </summary>
|
||||
public void SpendResources(int amount)
|
||||
{
|
||||
if (mainCore == null)
|
||||
{
|
||||
Debug.LogWarning("메인 코어가 설정되지 않았습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
mainCore.ConsumeResourceServerRpc(amount);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 자원량 가져오기
|
||||
/// </summary>
|
||||
public int GetCurrentResources()
|
||||
{
|
||||
if (mainCore == null)
|
||||
return 0;
|
||||
|
||||
return mainCore.TotalResources;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user