1
4

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 5 years have passed since last update.

uGUIのToggle

Last updated at Posted at 2015-12-11

#概要
Unityのバージョンは5.2.3f1

uGUIのToggle(チェックボックス)とラジオボックスの作り方についてのメモです。
Toggleのコンポーネントの内容は以下の通りです。

  • Toggle
  • Background(Image)
  • Checkmark(Image)
  • Label(Text)

内容はマニュアルを見ると詳しく載っています。
http://docs.unity3d.com/ja/current/Manual/script-Toggle.html
http://docs.unity3d.com/ja/current/Manual/script-ToggleGroup.html

Toggleの表現はButtonとほぼ同じなので、Buttonの記事を参照。
http://qiita.com/seka/items/344bfb325f300649cd5b
Textについての説明はこちら
Imageについての説明はこちら

#ラジオボックスを作る

  • Create Emptyで空のオブジェクトを作る(名前はToggleGroup)
  • この空のオブジェクトにAdd Component>UI>Toggle Groupを追加する
  • 子オブジェクトにToggleを追加する(とりあえず3つくらい)
  • 各ToggleのIs Onのチェックを解除してチェックを非表示にしておく
  • 各ToggleのGroupに親オブジェクトのToggleGroupを選択する
    これでラジオボックスができる。(必ずどれか一つにチェックが入るようにするには、Toggle GroupのAllow Switch Offを解除する)

#Toggleのイベント
チェックボックスのクリックイベントはOn Value Changed(Boolean)で制御します。
チェックボックスは押してから離したときにイベントが発生します。
イベントの追加方法は
1.右下の+をクリック
2.None(Object)に制御するオブジェクトを選択
3.No Functionで制御するメソッドもしくは変数を指定する

#Toggle Groupで作ったラジオボックスのイベント
チェックが付いてない所をクリックするとイベントは2回発生するので注意。
最初にチェックが外れるToggleでイベントが発生して、その後チェックが付くToggleのイベントが発生します。

#ToggleのSprict制御

ToggleTest
  using UnityEngine.UI;
  using System.Linq;

  private Toggle toggle1;
  private ToggleGroup toggleGroup1;

  void Start()
  {
      toggle1 = GetComponent<Toggle>();
      toggleGroup1 = GetComponent<ToggleGroup>();
  }
 
  void Update()
  {
      Debug.Log(toggleGroup1.AnyTogglesOn());  // いずれかのトグルがオンになっているか
      if (toggleGroup1.AnyTogglesOn())
      {
          toggle1 = toggleGroup1.ActiveToggles().FirstOrDefault();  // チェックが付いているトグルを取得
          Debug.Log(toggle1.name); 
      }
  }

  // このメソッドをOn Click()に指定するとボタンを押したときにメソッドを呼び出す
  public void OnClick()
  {
      Debug.Log(toggle1.isOn);  // トグルの状態
  }

#その他のメモ

  • WebのUIではよく使われる(アンケートの選択など)
  • ラジオボックスはスマホのUIでよくあるタブナビゲーションやセグメンテットコントロールをつくるのに応用できる。(iPhoneのAppStoreのUIが参考になる)
  • ToggleのアニメーションはCheckmarkのImage TypeをFilled、Fill MethodをHorizontal、Fill OriginをLeftにして、クリックしたらFill AmountをScriptで徐々に変化させるといい感じになる。(チェックマークが丸の場合はFill MethodをRadial 360にするといい)

#参考になりそうなサイトやAsset
スマホの場合、ボタンをつくる上で注意することはボタンのサイズ(小さすぎると押しづらい)
http://www.dotproof.jp/2013/08/06/minimum-tap-size/

チェックボックスとラジオボックスの表現の参考サイト
http://weboook.blog22.fc2.com/blog-entry-379.html
http://commte.net/blog/archives/3948

チェックのアニメーションの参考サイト
http://tympanus.net/Development/AnimatedCheckboxes/

#今後の課題
タブ型ナビゲーションなどの作り方は別の記事で書く予定。

1
4
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
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?