Skip to content

ButtonコンポーネントでToggle動作を実現する方法

Posted in 技術記事


実行環境
Windows7 Professional 64bit
Unity5.6.3.p1
C#


忙しい人向けのまとめ

Navigationをnoneにする
本当は最初からToggleを使ってね☆

はじめに

UnityのuGUIでトグルボタンを実装したい時はToggleコンポーネント(+ToggleGroupe)を使うと思います。
しかし、初期にButtonコンポーネントで作成し実装が進んでしまった場合、Toggleに差し替えるのが大変になったりします。
そこでなんとか誤魔化す方法を紹介します。

実例

これは実際に私がPSSというツール(ストアリンク)で実装している画像です。

 

以下のような(ButtonでToggleを実現するという無駄な)動作を想定して組んであります。

  1. ボタンを押す
  2. 選択されたボタンのTransition/Normal Colorを変える
  3. 選択されたボタンの情報を別の場所に表示させる
  4. もう一度同じボタンを選択した場合、情報を削除しTransition/Normal Colorを元に戻す

しかしButtonコンポーネントの設定を変更していない場合、下の画像のように選択を解除しても色が戻りません。
これは該当のボタンにフォーカスが移っている状態であり、ButtonのTransitionがHighlighted Colorになっているからです。

 

解決方法

Navigationをnoneにすれば解決します。フォーカスが移らない=Highlighted ColorではなくNormal Colorにもどる、という動作になるからです。
しかしキーボード操作は出来なくなるので、コントローラーやキーボード操作を考えているアプリの場合は使えない手です。

まとめ

最初からToggleを使おう。

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です