本文へスキップ
UI

Como construir un primer menu de ajustes para un proyecto de juego

Guia practica para elegir los ajustes iniciales que de verdad importan y evitar menus que parecen completos pero se comportan de forma inconsistente.

公開日: 2026-06-23#settings menu#UI#audio#beginner

Quick Start

Empieza con una version pequena

Tu primer menu de ajustes no necesita ser grande. En un proyecto principiante, audio, display y referencia de input suelen bastar.

Construyelo con pequenos fragmentos

1. 値を用意する

Inspectorで変更できる値と表示先を置きます。

SettingsMenuTutorial.cs
csharp
    [SerializeField] private TextMeshProUGUI statusText;
    [SerializeField] private float volume = 1f;
    [SerializeField] private float brightness = 2f;
    [SerializeField] private float languageIndex = 3f;

2. 状態を変える

ボタンを押した時に、1つだけ状態を進めます。

SettingsMenuTutorial.cs
csharp
    public void NextStep()
    {
        step = (step + 1) % 3;
        var label = step == 0 ? "項目を表示" : step == 1 ? "値を変更" : "保存して戻す";
        if (statusText != null)
        {
            statusText.text = $"{label}\nvolume={volume:0.##}\nbrightness={brightness:0.##}\nlanguageIndex={languageIndex:0.##}";
        }

3. 画面に表示する

変わった結果を画面に出して確認します。

SettingsMenuTutorial.cs
csharp
        if (statusText != null)
        {
            statusText.text = $"{label}\nvolume={volume:0.##}\nbrightness={brightness:0.##}\nlanguageIndex={languageIndex:0.##}";
        }
        Debug.Log($"設定メニュー: {label}");

Script completo

SettingsMenuTutorial.cs
csharp
using UnityEngine;
using TMPro;

public class SettingsMenuTutorial : MonoBehaviour
{
    [SerializeField] private TextMeshProUGUI statusText;
    [SerializeField] private float volume = 1f;
    [SerializeField] private float brightness = 2f;
    [SerializeField] private float languageIndex = 3f;

    private int step;

    public void NextStep()
    {
        step = (step + 1) % 3;
        var label = step == 0 ? "項目を表示" : step == 1 ? "値を変更" : "保存して戻す";
        if (statusText != null)
        {
            statusText.text = $"{label}\nvolume={volume:0.##}\nbrightness={brightness:0.##}\nlanguageIndex={languageIndex:0.##}";
        }
        Debug.Log($"設定メニュー: {label}");
    }
}

Inspector

Conecta la referencia de UI en el Inspector y confirma cada cambio con el boton.

Resumen

Que deberias llevarte

Guia practica para elegir los ajustes iniciales que de verdad importan y evitar menus que parecen completos pero se comportan de forma inconsistente.