0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unity2021年版ラジオボタンの再現方法

Posted at

1.記事を書こうと思ったきっかけ

 仕事でUnityのUIでWebであるようなラジオボタンの実装を要求されたわけですが、既出の情報が古いせいか、2021年版のUnityでそれを再現しようとして上手くいかず、数時間溶かしてしまったため、今後似たような案件が来た時のために備忘録を残しておこうという気になったからです。

2.作り方

2-1.Toggleを追加する

・ヒエラルキーウィンドウ→+ボタン→UI→Toggle
image.png
 これでヒエラルキーウィンドウ上にUIとトグルが出現します。ラジオボタンですので複数から一つを選択するわけですから同様の手順でトグルをもっと召喚します。
image.png

2-2.召喚したToggleのどれか一つにToggle Groupコンポーネントを追加

 今回はToggle1にアタッチさせましたがこれもToggleならどれでもいいです。
・Add Component→Toggle Group
image.png

 これでToggle1にToggleグループがアタッチされました。Toggle1のインスペクターウィンドウを下までスクロールしたらこうなってると思います。
image.png

 ご覧の通り一番下にToggle Groupコンポーネントが追加されています。Allow Switch Offの項目はラジオボタンのチェック項目を全て未チェック状態にするかどうかを決めるための要素になってきます。こちらにチェックを入れるとチェック中の箇所を再度クリックすると全てのチェックが外れた状態にできます。

2-3.全てのToggleのインスペクタービューからIs Onの項目を探し、チェックを外す

 何も考えずに探して外しましょう。これを外さないと実行時に項目がチェック状態になっちゃってます。ラジオボタンをポチポチするどころの話じゃありません。
image.png

2-4.全てのToggleのGroup項目をラジオボタンの選択対象となるグループ名で指定しておく

 既出の記事との相違点はここになってきます(それとも既出の情報が言葉足らずなだけか…?)。そのことはさておき、本題に戻りますと、ラジオボタンの選択項目として追加したい全てのToggleのGroup項目について先ほどToggle1に追加したToggle Groupコンポーネントで統一してひとくくりにしていきます。

 任意のToggleのインスペクターウィンドウを表示し、下の方にスクロールしていきますと、Groupの項目があります。右側の◎をクリックしてグループとして使えるリストを表示してみますと、Toggle GroupをアタッチさせてあるToggle1が出てきます。
image.png

 このToggle1をダブルクリックしてGroupにToggle1を指定しましょう。指定したらこうなります。
image.png

 これを選択項目の対象となる全てのToggleで行いましょう。Toggle GroupがアタッチされているToggleも例外なくです。既出の情報ですと、Toggle GroupがアタッチされているToggleについてはGroupの項目の指定について特に何も記述がなく、指定しなくても大丈夫という印象を受けましたが、指定しておかないとToggle1だけグループから除外されてしまうという処理がされてしまいます。

 ともかく、上記の手順でUnityのUIでラジオボタンを再現することができるわけです。

3.まとめ

 やっぱりゲームエンジンなだけあってWebと違って面倒くさいです。しかも定期的なバージョンアップで仕様変わるし…。仕事である以上触ってますがWebが恋しくなります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?