シンプルなアクションゲームを作ってみよう20-ポーズ機能を作成する-

記事内に広告が含まれています。

シンプルなアクションゲームを作ってみようの第20回です。

今回はゲームを中断する機能を作成していきます。

前回はプレイヤーキャラクターにジャンプ機能を搭載しました。

シンプルなアクションゲームを作ってみよう19-ジャンプ機能を作成する-
シンプルなアクションゲームのプレイヤーにジャンプ機能を取り付けていきます。また二段階のジャンプも出来るようにします。

シンプルなアクションゲームを作ってみようの他の記事は

シンプルなアクションゲームを作ってみよう

シンプルなアクションゲームを作るのを通してUnityの使い方を学ぶカテゴリです。

から参照出来ます。

スポンサーリンク

ポーズ機能を作成する

ポーズ機能を作成していきましょう。

ポーズ時に表示するUIを作成する

まずはゲームをポーズしている時に表示するUIを作成します。

ヒエラルキーでUIゲームオブジェクトを選択している状態で右クリックからUI→Canvasを選択し、名前をPauseとします。

Pausegameオブジェクトの作成

次にPauseゲームオブジェクトを選択した状態で右クリックからUI→Panelを選択し、名前をPausePanelとします。

さらにPausePanelを選択した状態でUI→Text – TextMeshProを選択し、名前をPauseTextとします。

ヒエラルキーは以下のようになりました。

ポーズ用UIの階層

PauseTextのインスペクタで以下のように設定します。

PauseTextのインスペクタ

Text Inputの下にはPauseという文字列を入力します。

Vertex Colorは青色にしテキストを青色にします。

AlignmentはCenterとMiddleを選択します。

TextMeshProでデフォルトで設定してあるフォントは日本語が使えません。

日本語フォントがあるフォントを使ってフォントアセットを作成し使用するか、アルファベットをText Inputに入力してください。

これでポーズ時に表示するUIが出来ました。

ポーズさせるスクリプトの作成

次にポーズにするボタンを押したらポーズ画面を表示し、ゲームを中断させるスクリプトを作成します。

Assets/Scriptsに新しくPauseScriptスクリプトを作成し、GameManagerゲームオブジェクトに取り付けます。

pauseUIにはインスペクタでPauseゲームオブジェクトを設定します。

StartメソッドではpauseUI.SetActiveメソッドを使って非アクティブにし見えないようにします。

UpdateメソッドではPauseボタンを押した場合にMathf.Approximatelyメソッドを使ってTime.timeScaleと1fを比較しています。

Mathf.Approximatelyはfloatの比較を出来ます。

Time.timeScaleは通常のゲームスピード時が1なので、1であればゲームをしている状態なのでTime.timeScaleを0に設定し、ゲームが止まるようにします。

pauseUI.SetActive(true)でポーズ用UIを表示します。

それ以外の時はゲームを開始する時なのでTime.timeScaleを1にし、ポーズ用UIを非表示にします。

これでスクリプトが出来たので次はInputManagerにPauseボタンを設定します。

UnityメニューのEdit→Project Settingsを選択し、Input Managerを選択します。

AxesのSizeの値を1増やします(おそらく18から19に変える)。

Pauseボタンを作成する

Cancelの設定の下に複製したCancelが出来るので、NameにPauseを設定します。

Pauseボタンの設定

Cancelボタンのキーがescapeになっているのでその複製であるPauseボタンのキーもescapeとなっています。

今回はそのままescapeにし、ESCキーが押されたらポーズにします。

実行して確認してみる

機能が出来たので実行して確認してみましょう。

GameManagerゲームオブジェクトのPauseScriptのPause UIにPauseゲームオブジェクトをドラッグ&ドロップするのを忘れない様にしてください。

上のようになりました。

終わりに

今回はポーズ機能を作成しました。

次回はライトのベイクをしていきます。

タイトルとURLをコピーしました