本文へスキップ
Guia de Unity

Guia para mostrar ciclos dia-noche y eventos por horario

Aprende a comunicar cambios de horario, eventos temporales y avisos previos sin hacer que el jugador pierda momentos importantes.

公開日: 2026-07-09#Unity#時間システム#進行UI#イベント表示#Beginner

Quick Start

Empieza con una version pequena

Aprende a comunicar cambios de horario, eventos temporales y avisos previos sin hacer que el jugador pierda momentos importantes. La idea no es memorizar todo de una vez, sino entender que mirar primero, que prueba pequena hacer y como reconocer si el aprendizaje va en la direccion correcta.

Construyelo con pequenos fragmentos

1. 値を用意する

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

DayNightTimerTutorial.cs
csharp
    [SerializeField] private TextMeshProUGUI statusText;
    [SerializeField] private float dayHour = 1f;
    [SerializeField] private float eventHour = 2f;
    [SerializeField] private float timeScale = 3f;

2. 状態を変える

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

DayNightTimerTutorial.cs
csharp
    public void NextStep()
    {
        step = (step + 1) % 3;
        var label = step == 0 ? "朝を表示" : step == 1 ? "夕方へ進む" : "イベント時刻を知らせる";
        if (statusText != null)
        {
            statusText.text = $"{label}\ndayHour={dayHour:0.##}\neventHour={eventHour:0.##}\ntimeScale={timeScale:0.##}";
        }

3. 画面に表示する

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

DayNightTimerTutorial.cs
csharp
        if (statusText != null)
        {
            statusText.text = $"{label}\ndayHour={dayHour:0.##}\neventHour={eventHour:0.##}\ntimeScale={timeScale:0.##}";
        }
        Debug.Log($"昼夜変化とイベント時刻: {label}");

Script completo

DayNightTimerTutorial.cs
csharp
using UnityEngine;
using TMPro;

public class DayNightTimerTutorial : MonoBehaviour
{
    [SerializeField] private TextMeshProUGUI statusText;
    [SerializeField] private float dayHour = 1f;
    [SerializeField] private float eventHour = 2f;
    [SerializeField] private float timeScale = 3f;

    private int step;

    public void NextStep()
    {
        step = (step + 1) % 3;
        var label = step == 0 ? "朝を表示" : step == 1 ? "夕方へ進む" : "イベント時刻を知らせる";
        if (statusText != null)
        {
            statusText.text = $"{label}\ndayHour={dayHour:0.##}\neventHour={eventHour:0.##}\ntimeScale={timeScale:0.##}";
        }
        Debug.Log($"昼夜変化とイベント時刻: {label}");
    }
}

Inspector

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

Resumen

Que deberias llevarte

Aprende a comunicar cambios de horario, eventos temporales y avisos previos sin hacer que el jugador pierda momentos importantes.