えにあです。
島津さん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の下の座標系で移動させるため。使い分けは今後勉強しないといけない。