![見出し画像](https://assets.st-note.com/production/uploads/images/108221093/rectangle_large_type_2_58de4f253fb280643645017dde43371a.png?width=1200)
Unityに一時停止ボタン設置をわかるよう書いてみた
![](https://assets.st-note.com/img/1686732348871-GZX1AD3Z8d.png)
Bing(AI)に聞いたりネットで検索したのですが
AIもヒットするのもがわかるように書いてるのがないので
わかるまで何時間もかかりました。
後で見返すために私がわかるように書いているんで誰でもわかるかは謎。
材料:一時停止の機能をオンオフするスクリプト
(名前はPauseにしています)
ボタン(UI経由で設置。名前はPauseButtonにしています)
Imageを切ってるパネル(UI経由で設置。名前はPasePanelにしています。)
スクリプトに書くのは以下の通り
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// ポーズの仕組み
/// </summary>
public class Pase : MonoBehaviour
{
public void PauseGame()
{
//押した時1か0かで切り替える
if (Time.timeScale == 1)
{ Time.timeScale = 0; }
else
{
Time.timeScale = 1;
}
}
}
手順:PasePanelにPauseButtonをいれる(親子関係にする)。
![](https://assets.st-note.com/img/1686732642004-okNu9kW2b5.png)
PauseスクリプトをPasePanelにアタッチする。
![](https://assets.st-note.com/img/1686732731246-5XvG0BAwmC.png)
PauseButtonのOnClick()の下にある+押して
左下にPasePanelを設置(アタッチ?)
右側にはPaseスクリプトの階層にある
PaseGame()を設定。
(Paseを選択すると
さらに複数の選択肢があるので
そこからPaseGame()を選ぶ)
![](https://assets.st-note.com/img/1686732824862-1Gl8pCuJlM.png)
これで一つのボタンでオンオフができます。
ただこのやり方はゲームのオブジェクトの動きは止まってくれますが
BGMは止まらないです。
![](https://assets.st-note.com/img/1686733180172-sYGUKLg5a4.png)
あとはボタンのイメージを
アセットストアから探して入れたり(差し替え)すると
クオリティが上がるでしょう。
で、
Time.timeScaleは何かと言われるとわからないんですけどね。