2/11/2017

[Unity] UI Pause & Reset button





UIを使ってキャラクターのアニメーションに一時停止ボタンをつけてみようと試した。
  • Pauseボタンを押すと止まる
  • PauseがGoになり、Goを押すと動きが再開
  • Resetボタンを押すとトップにシーン移動 

みたいな感じになれば成功。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class ButtonController : MonoBehaviour {


//PauseButtonの設定
    public bool pause;

    void Start () {
        pause = false;
    }

    public void onPause(){
        pause = !pause;
        if (!pause) {
            Time.timeScale = 1;
            GameObject.Find ("pauseText").GetComponent<Text>().text = "PAUSE";

        } else if (pause) {
            Time.timeScale = 0;
            GameObject.Find ("pauseText").GetComponent<Text>().text = "GO";
        }
    }

    //ResetButtonの設定
    public void Reset(){
        SceneManager.LoadScene ("TitleScene");

        if (pause) {
            Time.timeScale = 1;
        }
    }
}





スクリプト用にButtonControllerというオブジェクトを作ってButtonController.csをアタッチ。
このオブジェクトをPauseとResetボタンのOn Click()という項目に追加してみた。

Pauseボタンをの挙動は問題なかったのだけど、Resetボタンの方が正しく動かない。Pauseを押したままResetを押して、トップ画面に戻した後にStartさせたら2回Pauseを押さないと動かなくなっちゃった。
初心者には難易度高いよ。。。
ちょっと迷ったけれど、以下の一文をResetの方に追加してみたら解消した。。。

if (pause) {
            Time.timeScale = 1;
        }

でもiPhoneで試すとうまくいかなかったので、
結局一旦保留でPauseを外しておいた。。。

0 コメント:

コメントを投稿