3/20/2017

[Unity]超シンプルなポップアップウインドウ

毎日ノロノロと勉強しているのだけど、キャラクターを動かしたり戦ったりするといったゲーム本編以外の要素が思った以上にたくさんあるよね。
普段、自分が遊んでいるパズルゲームもやたらボタンがあって、タップすると課金アイテムのウインドウだったり、ヘルプだったり、広告だったり。

あー、確かに設定画面的なのって必要だよなあと。
なので作ってみようと思って調べたのだけど、本当にいろいろな方法がある。

やりたいこと

設定ボタンをタップすると設定画面が開いて
BGMの音量を調整する


設定画面のアイコンってギアみたいなのが多いのでPhotoshopのカスタムシェイプを使って作成。

Photoshopのデータを書き出してスプライトで配置してみたのだけど、
初心者の私としてはボタンをタップしたらウインドウを開く、クローズボタンをタップしたらウインドウが閉じる、という単純な動作がわからなくて右往左往した!
音量を調整するスライダーをつける方法はネットや買った本に載っているのでなんとかなりそうだけど。。。

Popup1

Popup2

長いスクリプトはまだ自分で理解できていないので、自分の理解の範囲で作って見たのが以下のもの。
でも複数シーンにまたがって設定画面を使う時はどうなるのだろう。なんか違うことやるんだよね。

設定画面は初期状態では非表示にしておいた。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SettingPannel : MonoBehaviour {

    void Start () {
        GameObject.Find ("SettingPanel").SetActive (false);
    }



ボタンの挙動はボタン用のスクリプトにまとめて、設定画面はSetActive (true)とSetActive (false)で切り替え。ボタンイベントonClickで呼び出している。

using UnityEngine;
using UnityEngine.SceneManagement;

public class ButtonController : MonoBehaviour {

 public void LoadSetting () {
   GameObject.Find ("Canvas").transform.Find ("SettingPanel").gameObject.SetActive (true);
    }

 public void Cancel () {
   GameObject.Find ("SettingPanel").SetActive (false);
    }

 public void LoadUnderwater () {
   SceneManager.LoadScene("Underwater");
    }
}


巷で出回っているゲームの設定画面って複雑で細かいのだけど、ほんとよく作られてるよね。プロってすごいなとこういうところでも思うわけです。
それでも本の手順に沿って作ってところから自分でこういうの作ろう!って思って調べながらあれこれやってみるようになったは我ながらすごい。

0 コメント:

コメントを投稿