Buttonをスクリプトからカーソル登録する

前回、uGUIでButtonをカーソル移動させるという記事を書きました。その発展形

手動で移動する場所を指定する

カーソル移動での移動は初期ではAutomaticになっています。それはそれでいいんだけど、1、2、3、4でカーソル移動させたいのにAutomaticだと結構カオスなことになります。
3eab8f478536d7ca2fabe129b56ac556
このような場合のためにUnityでは手動でカーソル移動を制限することが可能です。a683467da43d3108ff1ff8ee994fd9ca
その他にも横オンリーとか縦オンリーなどの設定もあります。

動的に選択出来るようにする

例えばあるフラグを取得したら選択肢が増えてる時ってゲームではよく有りますよね。
uGUIのnavigationをいじくれば動的にボタンを移動させることができます。
以下コード

    public Button button1, button2, button3,button4,button5;

    public void Conect()
    {
        //上の矢印連結
        Navigation buttonUp = button1.navigation;
        buttonUp.mode = Navigation.Mode.Explicit;
        buttonUp.selectOnUp = button2;
        button1.navigation = buttonUp;

        //下の矢印連結
        Navigation buttonDown = button1.navigation;
        buttonDown.mode = Navigation.Mode.Explicit;
        buttonDown.selectOnDown = button3;
        button1.navigation = buttonDown;

        //右の矢印連結
        Navigation buttonRight = button1.navigation;
        buttonRight.mode = Navigation.Mode.Explicit;
        buttonRight.selectOnRight = button4;
        button1.navigation = buttonRight;

        //左の矢印連結
        Navigation buttonLeft = button1.navigation;
        buttonLeft.mode = Navigation.Mode.Explicit;
        buttonLeft.selectOnLeft = button5;
        button1.navigation = buttonLeft;

    }

実行結果

play

今回はボタンを動的にカーソルの移動範囲を指定するということでしたので、ボタンにconnectメソッドを登録して行いました。

さっくりと解説

  Navigation buttonUp = button1.navigation;

Unityのマニュアルによると、Navigationというのはプレイ中(Ctrl+P時)のボタンの状態を管理する構造体(変数をまとめた箱)っぽいです。ここでは適当な変数「buttonUp」にbutton1のNavigationを格納しています。

       buttonUp.mode = Navigation.Mode.Explicit;

Nvigation.modeでbutton1のモードを設定します。今回は自由に設定できるExplicit選択します。ここで注意してほしいのが接続するアイコンすべてExplicitにしないと結局カオスのままになります。

ここのこと

ここのこと

        buttonUp.selectOnUp = button2;

Explicit

Explicitは上下左右をしたとき、どのuGUIに移動するかを選ぶことができます。なのでどのキーがどのボタンに対応するのかを書きます。上のコードはbutton1にセレクトされているときに、上キーを押したらbutto2に行くといった感じです。

        button1.navigation = buttonUp;

という設定したbuttonUpをbutton1のNavigationに登録して終了です。近いうちに活用例などを交えて紹介したいと思います。お楽しみに

参考サイト

Unity – マニュアル ナビゲーション操作

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中