見出し画像

短編RPG制作(Unity2D)【第56回】ポーズ機能、ステージ移動機能


ポーズ機能

バトルを止める機能を実装します。

ボタン追加

前回同様、まずボタンを追加しました。
押すとポーズ、もう一度押すと再開します。

機能作成

ボタンに機能を付けます。

using UnityEngine;
using UnityEngine.UI;

public class PauseButton : MonoBehaviour
{
    private Text _text;
    private bool pause = false;

    private void Start()
    {
        _text = GetComponentInChildren<Text>();
    }

    public void OnClickPauseButton()
    {
        if (!pause)
        {
            pause = true;
            Time.timeScale = 0;
            _text.text = "Restart";
        }
        else
        {
            pause = false;
            Time.timeScale = 1;
            _text.text = "Pause";
        }        
    }
}

このPauseButtonクラスでゲーム内時間を操作することで、ポーズを実現します。
"Time.timeScale"を0にすると、ゲーム内時間が停止します。(Update関数は動き続けるようです。)
"Time.timeScale"を1にすると通常通り、2にするとゲーム内速度が2倍になるらしいです。
また、通常通りに時間が動いている時は「Pause」、ポーズ中は「Restart」をボタンに表示するようにしました。

ステージ移動機能

ステージを戻したり進めたりする機能を追加します。

ボタン追加

例のごとくボタン追加です。
ついでにステージの表示位置を見直しました。

ボタン追加

まとめ

時間足りないので今日はここまでです。
明日はステージ移動ボタンを機能させたいと思います。

この記事が気に入ったらサポートをしてみませんか?