Quick Start
Start with a tiny working version
Skill trees create long-term excitement, but weak respec design turns that same system into stress. If players cannot tell which points will be refunded, which prerequisites will collapse, or what their new build will actually become before they confirm, they stop experimenting.
Build it in small code pieces
1. 値を用意する
Inspectorで変更できる値と表示先を置きます。
[SerializeField] private TextMeshProUGUI statusText;
[SerializeField] private float spentPoints = 1f;
[SerializeField] private float refundCost = 2f;
[SerializeField] private float previewPoints = 3f;2. 状態を変える
ボタンを押した時に、1つだけ状態を進めます。
public void NextStep()
{
step = (step + 1) % 3;
var label = step == 0 ? "現在配分を見る" : step == 1 ? "払い戻す" : "再配分する";
if (statusText != null)
{
statusText.text = $"{label}\nspentPoints={spentPoints:0.##}\nrefundCost={refundCost:0.##}\npreviewPoints={previewPoints:0.##}";
}3. 画面に表示する
変わった結果を画面に出して確認します。
if (statusText != null)
{
statusText.text = $"{label}\nspentPoints={spentPoints:0.##}\nrefundCost={refundCost:0.##}\npreviewPoints={previewPoints:0.##}";
}
Debug.Log($"スキル振り直しと払い戻し: {label}");Complete script
using UnityEngine;
using TMPro;
public class SkillRespecTutorial : MonoBehaviour
{
[SerializeField] private TextMeshProUGUI statusText;
[SerializeField] private float spentPoints = 1f;
[SerializeField] private float refundCost = 2f;
[SerializeField] private float previewPoints = 3f;
private int step;
public void NextStep()
{
step = (step + 1) % 3;
var label = step == 0 ? "現在配分を見る" : step == 1 ? "払い戻す" : "再配分する";
if (statusText != null)
{
statusText.text = $"{label}\nspentPoints={spentPoints:0.##}\nrefundCost={refundCost:0.##}\npreviewPoints={previewPoints:0.##}";
}
Debug.Log($"スキル振り直しと払い戻し: {label}");
}
}Inspector
Summary
What to take away
Learn how to present refunds, reallocation, and prerequisite changes so players can respec without confusion or fear.
The page is designed to help you move from reading to a small practical decision. Use the checklist above before jumping into the next related article.
