本文へスキップ
UI

Cara membangun settings menu pertama untuk proyek game

Panduan praktis memilih setting awal yang penting dan menghindari menu yang tampak lengkap tetapi berperilaku tidak konsisten.

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

Quick Start

Mulai dari versi kecil yang berjalan

Settings menu pertamamu tidak perlu besar. Untuk proyek pemula, audio, display, dan referensi input biasanya sudah cukup.

Bangun dengan potongan kode kecil

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 lengkap

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

Hubungkan referensi UI di Inspector, lalu cek setiap perubahan dengan tombol.

Ringkasan

Hal yang perlu dibawa pulang

Panduan praktis memilih setting awal yang penting dan menghindari menu yang tampak lengkap tetapi berperilaku tidak konsisten.