Files
WhaleAdventure_VR/Assets/My project/TruthFountain/Scripts/TruthFountainData.cs
skrwns304@gmail.com b1e85a5b89 2026-06-19 UI, UI로직
2026-06-19 14:27:40 +09:00

56 lines
2.0 KiB
C#

using UnityEngine;
[CreateAssetMenu(fileName = "TruthFountainData_Default", menuName = "Adventure/Truth Fountain/Truth Fountain Data")]
public class TruthFountainData : ScriptableObject
{
[Header("Basic")]
[SerializeField] private string title = "진실의 샘";
[Header("Questions")]
[SerializeField] private TruthQuestionData[] questions;
[Header("Rules")]
[Min(1)]
[SerializeField] private int maxLieScore = 3;
[Tooltip("켜두면 거짓 점수가 최대치에 도달하는 순간 바로 실패합니다. 끄면 모든 질문이 끝난 뒤 판정합니다.")]
[SerializeField] private bool failImmediatelyAtMaxLieScore = true;
[Min(0f)]
[SerializeField] private float resultDelay = 1.0f;
[Header("Success Result")]
[SerializeField] private string successTitle = "진실의 샘이 빛납니다";
[TextArea(2, 5)]
[SerializeField] private string successDescription = "당신의 진심이 샘에 닿았습니다.\n기억의 조각을 획득했습니다.";
[Header("Fail Result")]
[SerializeField] private string failTitle = "코가 너무 길어졌습니다";
[TextArea(2, 5)]
[SerializeField] private string failDescription = "샘이 당신의 대답을 믿지 못했습니다.\n다시 도전해보세요.";
public string Title => title;
public TruthQuestionData[] Questions => questions;
public int MaxLieScore => Mathf.Max(1, maxLieScore);
public bool FailImmediatelyAtMaxLieScore => failImmediatelyAtMaxLieScore;
public float ResultDelay => Mathf.Max(0f, resultDelay);
public string SuccessTitle => successTitle;
public string SuccessDescription => successDescription;
public string FailTitle => failTitle;
public string FailDescription => failDescription;
public int QuestionCount => questions == null ? 0 : questions.Length;
public TruthQuestionData GetQuestion(int index)
{
if (questions == null || index < 0 || index >= questions.Length)
{
return null;
}
return questions[index];
}
}