2026-06-19 UI, UI로직
This commit is contained in:
57
Assets/My project/RoomSelect/Scripts/RoomData.cs
Normal file
57
Assets/My project/RoomSelect/Scripts/RoomData.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(menuName = "Adventure/Room Select/Room Data", fileName = "RoomData_NewRoom")]
|
||||
public class RoomData : ScriptableObject
|
||||
{
|
||||
[Header("Basic Info")]
|
||||
[SerializeField] private string roomId = "NewRoom";
|
||||
[SerializeField] private string roomName = "새로운 방";
|
||||
[TextArea(3, 6)]
|
||||
[SerializeField] private string description = "방 설명을 입력하세요.";
|
||||
[SerializeField] private Sprite roomIcon;
|
||||
|
||||
[Header("Enter")]
|
||||
[Tooltip("씬 이동 방식을 사용할 때 불러올 씬 이름입니다. 한 씬 안에서 이동만 할 경우 비워둬도 됩니다.")]
|
||||
[SerializeField] private string sceneName = "";
|
||||
|
||||
[Header("Unlock Condition")]
|
||||
[Min(0)]
|
||||
[SerializeField] private int requiredMemoryPieces = 0;
|
||||
[SerializeField] private RoomState defaultState = RoomState.Unlocked;
|
||||
[TextArea(2, 4)]
|
||||
[SerializeField] private string lockReasonOverride = "";
|
||||
|
||||
[Header("Reward Info")]
|
||||
[Tooltip("이 방에서 기억의 조각을 얻을 수 있는지 표시용으로 사용합니다.")]
|
||||
[SerializeField] private bool hasMemoryPieceReward = false;
|
||||
|
||||
public string RoomId => roomId;
|
||||
public string RoomName => roomName;
|
||||
public string Description => description;
|
||||
public Sprite RoomIcon => roomIcon;
|
||||
public string SceneName => sceneName;
|
||||
public int RequiredMemoryPieces => requiredMemoryPieces;
|
||||
public RoomState DefaultState => defaultState;
|
||||
public string LockReasonOverride => lockReasonOverride;
|
||||
public bool HasMemoryPieceReward => hasMemoryPieceReward;
|
||||
|
||||
public bool HasSceneName()
|
||||
{
|
||||
return !string.IsNullOrWhiteSpace(sceneName);
|
||||
}
|
||||
|
||||
public string GetLockedMessage(int currentMemoryPieces)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(lockReasonOverride))
|
||||
{
|
||||
return lockReasonOverride;
|
||||
}
|
||||
|
||||
if (requiredMemoryPieces > currentMemoryPieces)
|
||||
{
|
||||
return $"기억의 조각 {requiredMemoryPieces}개 필요";
|
||||
}
|
||||
|
||||
return "아직 입장할 수 없습니다.";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user