Udemy学習記録 Unity2D脱出ゲーム開発入門(2日目)

えにあです。

島津さんUnity2D脱出ゲーム開発入門をやっていきます。 前回はNo38をやったので、No39、No40を進めていきます。

今回のゴール

前回作成した矢印ボタンを押したら、画面が切り替わるようにする。

パネルをまとめる

CreateEmptyでCanvasの下にPanelParentを作成する。 前回作成したPanel0~3をすべて下に移動。

親パネルは現在画面に映っている枠を表している。 枠の位置を変えていくことで、画面表示を切り替える作戦のようだ。

Canvasの下にPanelParentとArrowsが存在する状況だが、PanelParentを上に持ってくること。 後々なにか影響があるらしい。ドラッグアンドドロップで移動できる。

GameViewにして、PanelParentのX座標、Y座標をいじってみよう。 画面が動いていくのがわかる。

Scriptを作る

プログラムから画面移動できるようにしていこう

Assetsフォルダの下にScriptsフォルダを作成する。 PanelChangerという名前でスクリプトを作成。 作成したスクリプトをPanelParentのインスペクターにドラッグアンドドロップ。 これで関連付けがされる。

スクリプトの中身はこんな感じ。

    public void OnRightArrow()
    {
        transform.localPosition = new Vector2(-1000, 0);
    }

Arrowに関数を紐づける

3つのArrowを全部選択。Add ComponentでButton。 これでArrowにボタン機能が備わる。

OnClickのオブジェクトにPanelParent、ファンクションにPanelChangerのOnRightArrowを選択。

同様に左もやる。

今日のポイント

・OnClickへの関連付けは、スクリプトがアタッチされているオブジェクト、スクリプトのファンクションの順番で張り付ける。直感的にはスクリプトを直接呼出しそうなものだが、なぜオブジェクトを介するのだろう。謎。

・ローカル座標とワールド座標。localPositionをいじっているのは、Canvasの下の座標系で移動させるため。使い分けは今後勉強しないといけない。